<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5077316080233395369</id><updated>2012-02-03T11:17:17.302Z</updated><category term='Amazon Elastic Computing Cloud'/><category term='DNS'/><category term='Verson Control'/><category term='SMB'/><category term='Webdav'/><category term='rsync'/><category term='Windows Network'/><category term='carriage return'/><category term='Twiki'/><category term='Draytek 2950'/><category term='osx'/><category term='Service Monitoring'/><category term='compression'/><category term='VPN'/><category term='windows share'/><category term='Linux Share'/><category term='Fiddler'/><category term='pear vcard module'/><category term='SQL server'/><category term='Flex'/><category term='do something when'/><category term='iOS'/><category term='SQL Backup'/><category term='cron'/><category term='newline'/><category term='PHP Excel Parser'/><category term='Virtual Disk'/><category term='backup'/><category term='gesture'/><category term='Centos'/><category term='linux'/><category term='SAMBA'/><category term='VMWare'/><category term='network share'/><category term='MySQL'/><category term='PDFLIB'/><category term='ECC'/><category term='Red Gate'/><category term='PDF'/><category term='Subversion'/><category term='Rotate Text'/><category term='AIR'/><category term='FPDF'/><category term='Nagios'/><category term='S3'/><category term='Dreamweaver'/><category term='Tortoise'/><category term='finger swipe'/><category term='Ical'/><category term='Knowledge Management'/><category term='PHP'/><category term='PHPKB'/><category term='flash mx asfunction problems'/><category term='Adobe CS3'/><category term='Active Directory'/><category term='Slave'/><category term='Dag'/><category term='SVN'/><category term='joost'/><category term='Bind'/><title type='text'>A view from the rack</title><subtitle type='html'>A view from the rack is the personal blog of an IT manager who works for a pub company - hence beer</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>48</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-2004008692084573040</id><published>2011-12-09T21:47:00.006Z</published><updated>2011-12-09T22:22:06.461Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='AIR'/><category scheme='http://www.blogger.com/atom/ns#' term='gesture'/><category scheme='http://www.blogger.com/atom/ns#' term='finger swipe'/><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><category scheme='http://www.blogger.com/atom/ns#' term='Flex'/><title type='text'>A farewell to SWF's and hello to gestures</title><content type='html'>Flex development for iOS is a new adventure for me, it has taken about 3 years to gain a reasonable proficiency with Flex but as with all things, nothing stands still and the pressure to keep moving with the times is ever present. It seems to me that the announcement to halt developing Flash for mobile devices represents a step forward rather than a retreat. The plugin architecture has plainly had its day and device manufacturers are demanding control of the programs which run on their hardware via the App stores which are now ubiquitous. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The problem is that my BI platform is entirely crafted on Flex and therefore relies on the flash plugin for use as I have never felt the urge to move over to AIR before now. That has all changed and it has actually been a very positive prod to investigate the new capabilities of Flash Builder and to begin to think about designing in a new way. Cross platform RIA used to mean Flash and I suppose it still does but as I understand it you are now looking at packaged Flash rather than swf files ready for the plugin and a series of GUI's crafted for each of the expected deployment platforms.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyhow enough of my view, its hardly an original train of thought and its well documented, on to the small nugget of code I wish to preserve for my cluttered memory. Along with the new platforms which flex supports there are also some new specific mobile features, in particular the ability to handle gestures or "finger swipes" on mobile touch screens. Its actually beautifully simple and the code follows for an empty view where I wanted to backup the back button in the action bar with a swipe feature for moving back to the previous view.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;in the View tag you need the following code&lt;/div&gt;&lt;div&gt;        &lt;p class="p1"&gt;&lt;span class="Apple-style-span" &gt;&lt;i&gt;gestureSwipe="handleSwipe(event)"&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;        &lt;p class="p1"&gt;&lt;span class="Apple-style-span" &gt;&lt;i&gt;&lt;s:view fx="http://ns.adobe.com/mxml/2009" s="library://ns.adobe.com/flex/spark" title="Menu Changes" gestureswipe="handleSwipe(event)"&gt;&lt;/s:view&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;        &lt;p class="p1"&gt;&lt;span class="Apple-style-span" &gt;&lt;i&gt;&lt;s:view fx="http://ns.adobe.com/mxml/2009" s="library://ns.adobe.com/flex/spark" title="Menu Changes" gestureswipe="handleSwipe(event)"&gt;&lt;/s:view&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="p1"&gt;and then the following in the script.&lt;/p&gt;&lt;p class="p1"&gt;&lt;span class="Apple-style-span" &gt;&lt;i&gt;import spark.transitions.SlideViewTransition;  &lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="p1"&gt;&lt;span class="Apple-style-span" &gt;&lt;i&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;import spark.transitions.ViewTransitionDirection;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="p2"&gt;&lt;span class="Apple-style-span" &gt;&lt;i&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="p1"&gt;&lt;span class="Apple-style-span" &gt;&lt;i&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;private function handleSwipe(event:TransformGestureEvent):void{&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="p1"&gt;&lt;span class="Apple-style-span" &gt;&lt;i&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;var slideViewTransition:SlideViewTransition = new SlideViewTransition();  &lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="p2"&gt;&lt;span class="Apple-style-span" &gt;&lt;i&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="p1"&gt;&lt;span class="Apple-style-span" &gt;&lt;i&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;if (event.offsetX == 1 ) {&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="p2"&gt;&lt;span class="Apple-style-span" &gt;&lt;i&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="p1"&gt;&lt;span class="Apple-style-span" &gt;&lt;i&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;slideViewTransition.direction = ViewTransitionDirection.RIGHT;  &lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="p2"&gt;&lt;span class="Apple-style-span" &gt;&lt;i&gt;navigator.popView(slideViewTransition);&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="p1"&gt;&lt;span class="Apple-style-span" &gt;&lt;i&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;}&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="p1"&gt;&lt;span class="Apple-style-span" &gt;&lt;i&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;&lt;span class="Apple-tab-span"&gt; &lt;/span&gt;}&lt;/i&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="p1"&gt;Now if you deploy your app to a touch screen device you can move to the previous view simply by swiping your finger, it takes the app into the brave new world!&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-2004008692084573040?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/2004008692084573040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=2004008692084573040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/2004008692084573040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/2004008692084573040'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2011/12/flex-development-for-ios-is-new.html' title='A farewell to SWF&apos;s and hello to gestures'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-7223723430848676335</id><published>2011-12-09T11:53:00.002Z</published><updated>2011-12-09T12:03:29.836Z</updated><title type='text'>A breath of fresh AIR</title><content type='html'>After 3 years away I have decided to reopen the blog but with a slightly changed focus. Whereas in the past my blog was a useful journal of the progress of the IT department and concerned infrastructure, programming and Linux. Going forward although there may be the occasional Linux post I will shift focus to Flex, AIR and iOS development using Flash Builder. The IT department still exists, although I am less inclined to share the infrastructure and Linux progress, but there are so many new and interesting features coming forward with Flex development I need a journal just to keep track and so I might as well share it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-7223723430848676335?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/7223723430848676335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=7223723430848676335' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/7223723430848676335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/7223723430848676335'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2011/12/breath-of-fresh-air.html' title='A breath of fresh AIR'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-6776421909734339181</id><published>2007-09-13T16:11:00.000Z</published><updated>2007-09-14T09:13:47.446Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='DNS'/><category scheme='http://www.blogger.com/atom/ns#' term='Bind'/><category scheme='http://www.blogger.com/atom/ns#' term='Slave'/><category scheme='http://www.blogger.com/atom/ns#' term='Centos'/><category scheme='http://www.blogger.com/atom/ns#' term='Active Directory'/><title type='text'>Enslaving a bind DNS server on CentOS</title><content type='html'>One thing I have been trying to accomplish ever since I commissioned our server in Manchester almost 9 months ago now is getting it set up as a secondary &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;DNS&lt;/span&gt; server, this I have finally accomplished and it is an experience worth sharing. There are many &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;howto's&lt;/span&gt; on the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;Internet&lt;/span&gt; which tell you how to set up a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;DNS&lt;/span&gt; server on windows or Linux but what I was after was to setup BIND on Linux as a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;fail over&lt;/span&gt; system for our main Microsoft &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;DNS&lt;/span&gt; server and this is a far less well documented scenario. Also contrary to what you might read its actually really easy just &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;don't&lt;/span&gt; step off the path!&lt;br /&gt;&lt;br /&gt;For those of you who &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;don't&lt;/span&gt; know, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;DNS&lt;/span&gt; is the system which marshals the traffic around the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;Internet&lt;/span&gt;, for example in the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;absence&lt;/span&gt; of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;DNS&lt;/span&gt; you would have to type in 72.21.206.5 instead of amazon.com to get to your favourite &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;e commerce&lt;/span&gt; merchant :o).  So &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;DNS&lt;/span&gt; is important for the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_14"&gt;Internet&lt;/span&gt; but also as local networks are now very much modeled upon the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_15"&gt;Internet&lt;/span&gt; scheme, without &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;DNS&lt;/span&gt; it becomes very difficult to manage your network in a user &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_17"&gt;friendly&lt;/span&gt; manner. Which as usual is great until it breaks!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_IoitLPp2rZ8/RupQts0M9mI/AAAAAAAAAFQ/gdasxk4t3ns/s1600-h/chimp.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp2.blogger.com/_IoitLPp2rZ8/RupQts0M9mI/AAAAAAAAAFQ/gdasxk4t3ns/s400/chimp.jpg" alt="" id="BLOGGER_PHOTO_ID_5109985473259697762" border="0" /&gt;&lt;/a&gt;So very quickly as your office network becomes more central to the workings of your business it is natural to want a secondary system &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_18"&gt;in case&lt;/span&gt; the first one breaks, especially when you are using a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;VPN&lt;/span&gt; as we are as the loss of our central &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;DNS&lt;/span&gt; server would render our remote systems unusable as well. So &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_21"&gt;that's&lt;/span&gt; the background, here is the solution to setting up a secondary &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;DNS&lt;/span&gt; server using BIND on Linux as a slave to an Active Directory &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;DNS&lt;/span&gt; server. Bear in mind this is for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;CentOS&lt;/span&gt; 4.5 (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;RHEL&lt;/span&gt; 4 equivalent) using the command line, if you are using a GUI just use the GUI tool!&lt;br /&gt;&lt;br /&gt;1. On the Microsoft box open &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;DNS&lt;/span&gt; and right click on the forward &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;lookup&lt;/span&gt; zone you wish to replicate, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;eg&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;somebiz&lt;/span&gt;.local. Under 'Name Servers' add the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;IP&lt;/span&gt; address of your Linux box.&lt;br /&gt;2. If you have already been playing, completely remove your existing BIND installation (yum remove bind), and trash any files in /var/named/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;chroot&lt;/span&gt;/var/named.&lt;br /&gt;3. Run yum install bind to install a fresh one.&lt;br /&gt;4. Paste the following into /var/named/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;chroot&lt;/span&gt;/var/etc/named.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;conf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// Red Hat BIND Configuration Tool&lt;br /&gt;// Default initial "Caching Only" name server configuration&lt;br /&gt;&lt;br /&gt;options {        directory "/var/named";  };&lt;br /&gt;&lt;br /&gt;zone "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;mydomain&lt;/span&gt;.local" IN {&lt;br /&gt;      type slave;&lt;br /&gt;      file "slaves/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;mydomain&lt;/span&gt;.local";&lt;br /&gt;      masters {       xxx.xxx.xxx.xxx port 53;};&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;include "/etc/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;rndc&lt;/span&gt;.key";&lt;br /&gt;&lt;br /&gt;5. substitute your domain for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;mydomain&lt;/span&gt;.local and your active directory server's &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;IP&lt;/span&gt; address in the xxx.xxx.xxx.xxx space.&lt;br /&gt;&lt;br /&gt;6. Run service named start and make a cuppa cos your done!&lt;br /&gt;&lt;br /&gt;Obviously this is not a comprehensive look at this subject, there is an awful lot more to play with in bind but that really is all you need to do to get going. Hope it helps..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-6776421909734339181?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/6776421909734339181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=6776421909734339181' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/6776421909734339181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/6776421909734339181'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/09/enslaving-bind-dns-server-on-centos.html' title='Enslaving a bind DNS server on CentOS'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_IoitLPp2rZ8/RupQts0M9mI/AAAAAAAAAFQ/gdasxk4t3ns/s72-c/chimp.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-3913313025760242288</id><published>2007-08-02T15:02:00.000Z</published><updated>2007-08-02T15:23:47.370Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='PDF'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='carriage return'/><category scheme='http://www.blogger.com/atom/ns#' term='newline'/><category scheme='http://www.blogger.com/atom/ns#' term='FPDF'/><title type='text'>New lines vs Carriage returns</title><content type='html'>There really is not much in this post for the layman so if you are not a dyed in the wool techie your going to find this dull so I apologise to you.&lt;br /&gt;&lt;br /&gt;I came &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;across&lt;/span&gt; an interesting problem this afternoon when quietly building some &lt;a href="http://www.adobe.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;PDF&lt;/span&gt;&lt;/a&gt; files using &lt;a href="http://www.php.net/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;PHP&lt;/span&gt;&lt;/a&gt; (as is my want) which I would like to share. It concerns the carriage return which is an invisible character usually used to move the currently printing text onto the next line. It turns out &lt;a href="http://www.fpdf.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;FPDF&lt;/span&gt;&lt;/a&gt;, the &lt;a href="http://www.php.net/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;PHP&lt;/span&gt;&lt;/a&gt; module I have been using to generate &lt;a href="http://www.adobe.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;PDF&lt;/span&gt;&lt;/a&gt; files just doesn't like them. Instead it uses the alternative invisible character 'new line' which is great :o) hooray!&lt;br /&gt;&lt;br /&gt;The really ticklish bit of all this is of course that these characters are both invisible so when one is having a struggle with them its really bit like wandering around in the dark. The first step when trying to sort a problem of this nature is to turn these characters into their representative codes, for this one requires the &lt;a href="http://uk2.php.net/ord"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;ord&lt;/span&gt;()&lt;/a&gt; function. One then needs to isolate these pesky invisible characters and decide what to turn them into.&lt;br /&gt;&lt;br /&gt;So to cut a long story short if you are trying to print a block of text using &lt;a href="http://www.fpdf.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;FPDF&lt;/span&gt;&lt;/a&gt; and your line breaks are not appearing use the following little function on your text:&lt;br /&gt;&lt;br /&gt;$text_var=&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;str&lt;/span&gt;_replace(&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;chr&lt;/span&gt;(13),&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;chr&lt;/span&gt;(10),$text_var);&lt;br /&gt;&lt;br /&gt;where $text_var is the variable containing your text. The function will magically strip out the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;ASCII&lt;/span&gt; character 13's (carriage return) and replace them with shiny new &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_12"&gt;ASCII&lt;/span&gt; character 10's (new line).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-3913313025760242288?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/3913313025760242288/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=3913313025760242288' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/3913313025760242288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/3913313025760242288'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/08/new-lines-vs-carriage-returns.html' title='New lines vs Carriage returns'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-3960051713680045271</id><published>2007-07-12T20:11:00.000Z</published><updated>2007-07-13T19:03:57.354Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP Excel Parser'/><category scheme='http://www.blogger.com/atom/ns#' term='PDF'/><category scheme='http://www.blogger.com/atom/ns#' term='Rotate Text'/><category scheme='http://www.blogger.com/atom/ns#' term='PDFLIB'/><category scheme='http://www.blogger.com/atom/ns#' term='FPDF'/><title type='text'>Pdf Trials</title><content type='html'>As soon as a programmer creates a program which stores information, at some point someone is going to want get at it (the information that it), print it, send it to someone else or just take a copy. In other words one requires a portable document.&lt;br /&gt;&lt;br /&gt;In our little in-house programs we have been using Excel a lot, it is ideal for presenting raw data to IT savvy managers as quite often the first thing they want to do is chop the data around, turn it upside down, rattle it and maybe analyse it against another &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;spreadsheet&lt;/span&gt;. Excel begins to struggle when it comes to printing and presenting  a better looking sort of document so we have begun to look at creating &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;PDF&lt;/span&gt; documents for some of our reporting and printing requirements.&lt;br /&gt;&lt;br /&gt;The first thing you find when you are looking for a program to create &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;PDF&lt;/span&gt; files is a library called &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;PDFLIB&lt;/span&gt; made by a company called ... &lt;a href="http://www.pdflib.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;PDFLIB&lt;/span&gt;.&lt;/a&gt; They have products for programmers who use C, Java, Delphi and our own favourite &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;PHP&lt;/span&gt;. The upside is that it is quite comprehensive offering the vast majority of the elements defined in the &lt;a href="http://www.adobe.com/devnet/acrobat/pdfs/pdf_reference.pdf"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;PDF&lt;/span&gt; format&lt;/a&gt;, the downside is that it costs about £1000. Given the price tag I decided to dig a little deeper and turned up a product called &lt;a href="http://www.fpdf.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;FPDF&lt;/span&gt;&lt;/a&gt; where the F stands for Free, a much more palatable entry in the IT budget.&lt;br /&gt;&lt;br /&gt;So Having installed the library effortlessly and tried a few of the examples I was impressed, the functions are limited but actually it seemed to cover everything I needed. The next step was to dive into probably the most complicated &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;PDF&lt;/span&gt; file we have and up until the very last element it was all going so well, attempting to write vertical text knocked the wheels off the wagon however.  Was vertical text going to cost a grand!?&lt;br /&gt;Back to &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;Google&lt;/span&gt; with a fresh cuppa and given that the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;PDF&lt;/span&gt; Format is freely published I thought maybe I should try my hand at extending the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;FPDF&lt;/span&gt; lib and adding the function for rotated text myself. The problem is it has been 15 years since my A level maths teacher force fed me matrix transformations and Adobe might have published the format and described the matrix transformations but they &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;don't&lt;/span&gt; really 'throw you a bone' when it comes to programming them.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_IoitLPp2rZ8/RpaWBtdZZVI/AAAAAAAAAFI/-1A2Qio_NLY/s1600-h/unholy.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp3.blogger.com/_IoitLPp2rZ8/RpaWBtdZZVI/AAAAAAAAAFI/-1A2Qio_NLY/s400/unholy.jpg" alt="" id="BLOGGER_PHOTO_ID_5086417785288484178" border="0" /&gt;&lt;/a&gt;More tea and some inspiration from a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;tunnocks&lt;/span&gt; tea cake turned up a pear module which is in a slightly fragile beta 0.2 state but essentially builds on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;FPDF&lt;/span&gt; and includes a rotate_text function - &lt;a href="http://pear.php.net/package/File_PDF"&gt;File_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;PDF&lt;/span&gt;&lt;/a&gt;. Being a pear module, installation was easy but could I get it to work! Alas no. However could I lift the bonnet on both these &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;php&lt;/span&gt; projects and force them into an unholy union, why yes sir! So this is my contribution to the open source community, if you are using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;FPDF&lt;/span&gt; and need the ability to rotate some text paste the following code into the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;fpdf&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;php&lt;/span&gt; file and call it using the last&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;&lt;/span&gt; line of code.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;function writeRotie($x,$y,$txt,$text_angle,$font_angle = 0)&lt;br /&gt;{&lt;br /&gt;    if ($x &lt; 0) {&lt;br /&gt;            $x += $this-&gt;w;&lt;br /&gt;        }&lt;br /&gt;        if ($y &lt; 0) {&lt;br /&gt;            $y += $this-&gt;h;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        /* Escape text. */&lt;br /&gt;        $text = $this-&gt;_escape($txt);&lt;br /&gt;&lt;br /&gt;        $font_angle += 90 + $text_angle;&lt;br /&gt;        $text_angle *= M_PI / 180;&lt;br /&gt;        $font_angle *= M_PI / 180;&lt;br /&gt;&lt;br /&gt;        $text_dx = cos($text_angle);&lt;br /&gt;        $text_dy = sin($text_angle);&lt;br /&gt;        $font_dx = cos($font_angle);&lt;br /&gt;        $font_dy = sin($font_angle);&lt;br /&gt;&lt;br /&gt;        $s= sprintf('BT %.2f %.2f %.2f %.2f %.2f %.2f Tm (%s) Tj ET', $text_dx, $text_dy, $font_dx, $font_dy,$x * $this-&gt;k, ($this-&gt;h-$y) * $this-&gt;k, $text);&lt;br /&gt;        if($this-&gt;underline &amp;&amp;amp; $txt!='')&lt;br /&gt;            $s.=' '.$this-&gt;_dounderline($x,$y,$txt);&lt;br /&gt;        if($this-&gt;ColorFlag)&lt;br /&gt;            $s='q '.$this-&gt;TextColor.' '.$s.' Q';&lt;br /&gt;        $this-&gt;_out($s);&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;// Write 'Soup' at grid ref 50x50 at a 90 degrees rotation&lt;br /&gt;&lt;span style="font-size:78%;"&gt;$pdf-&gt;writeRotie(50,50,"Soup",90,0);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;       &lt;br /&gt;As ever one hour of the day accomplished 95% of the job, the rest of the day was spent chasing around after a seemingly straight forward willow the wisp of a function.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-3960051713680045271?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/3960051713680045271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=3960051713680045271' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/3960051713680045271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/3960051713680045271'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/07/pdf-trials.html' title='Pdf Trials'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_IoitLPp2rZ8/RpaWBtdZZVI/AAAAAAAAAFI/-1A2Qio_NLY/s72-c/unholy.jpg' height='72' width='72'/><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-59711892446698314</id><published>2007-06-22T12:44:00.000Z</published><updated>2007-06-22T15:51:05.540Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Amazon Elastic Computing Cloud'/><category scheme='http://www.blogger.com/atom/ns#' term='S3'/><category scheme='http://www.blogger.com/atom/ns#' term='ECC'/><category scheme='http://www.blogger.com/atom/ns#' term='Red Gate'/><category scheme='http://www.blogger.com/atom/ns#' term='Fiddler'/><title type='text'>Fiddling around and the simple storage solution</title><content type='html'>I was invited on to the Amazon Computing Cloud yesterday - a seminal moment as I have been desperate to have a go on it for weeks now, but disaster! I was passed over because I had foolishly forgotten to open an &lt;a href="http://www.amazon.com/gp/browse.html?node=16427261"&gt;S3&lt;/a&gt; (&lt;a href="http://www.amazon.com/gp/browse.html?node=16427261"&gt;simple storage service&lt;/a&gt;) account which is a prerequisite, despite my grovelling and the immediate opening of an &lt;a href="http://www.amazon.com/gp/browse.html?node=16427261"&gt;S3&lt;/a&gt; account I appear to have missed my window of opportunity.&lt;br /&gt;&lt;br /&gt;That said it has given me a little time to investigate the &lt;a href="http://www.amazon.com/gp/browse.html?node=16427261"&gt;simple storage service&lt;/a&gt; and in itself this has opened a few doors in my mind. Storage in the &lt;a href="http://www.amazon.com/gp/browse.html?node=16427261"&gt;S3&lt;/a&gt; bucket is very cheap indeed at 15 cents per Gig per month, this means for example that I could store my largest SQL database, at 2Gig and rising, on the ultimate storage system for 14p per copy per month with transfer costs of 10p. Doing a little simple maths therefore means that  backup scenarios would cost:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;24p per month per copy&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;£1.78 per copy per month&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;£50 per month for a rolling 30 day backup&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;£650 pa. for a daily backup rolling on for 12 months (almost 800Gb of data)&lt;/li&gt;&lt;/ul&gt;The real magic here is not that I can get someone to host almost a terabyte of data for £650 pa but the infrastructure behind it, storage spanning multiple data centres in multiple countries, is fantastic. There are only 2 slight problems, there is a file size limit of 5Gb at present which hopefully will have increased by the time my bloaty database has got anywhere near that, also my backup software Red Gate does not at present support S3.&lt;br /&gt;&lt;br /&gt;So I'll have to write a little program one of these days to bounce my off site backup from our Manchester server over to the S3 cloud on a nightly basis then I really, really will have an offsite backup I can be satisfied with. Alternatively our friendly Red Gate developers might like to take the hint, get an S3 account and crack their programming type knuckles. Utility computing has to be the future of off site backup so get in there, I wont charge for this revolutionary piece of advice but I have broken my promotional Red Gate pen so if someone wants to send me another one we'll call it quits :o)&lt;br /&gt;&lt;br /&gt;Whilst I am on the subject of &lt;a href="http://www.amazon.com/gp/browse.html?node=16427261"&gt;S3&lt;/a&gt; there is a fantastic little add on for FireFox which I found very useful for getting things moving, the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3247"&gt;S3 organizer&lt;/a&gt;, its a good job the programming is better than the spelling of organiser :o)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_IoitLPp2rZ8/Rnvv0oFwiAI/AAAAAAAAAFA/PGFycu5Tj0c/s1600-h/Yellow-Fiddler-Crab-On-Sand-Beach-Closeup.Jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp3.blogger.com/_IoitLPp2rZ8/Rnvv0oFwiAI/AAAAAAAAAFA/PGFycu5Tj0c/s400/Yellow-Fiddler-Crab-On-Sand-Beach-Closeup.Jpg" alt="" id="BLOGGER_PHOTO_ID_5078916692184172546" border="0" /&gt;&lt;/a&gt;And speaking of really useful little pieces of software anyone who does any programming of web apps should get themselves a copy of fiddler. Its a really rather sweet little program written by Microsoft (tun tun tun!) and distributed free! Maybe Bill finally has enough.&lt;br /&gt;&lt;br /&gt;Anyhow before I get on my soap box, fiddler is a very simply http proxy server which gives you a real time readout of what traffic is moving through your Internet connection. As we are using Flash couple with AmfPHP we constantly struggle to debug in an efficient way but not anymore! I wont spoil compadre Robs review right now but just get it and watch out for the bug eyed review.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-59711892446698314?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/59711892446698314/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=59711892446698314' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/59711892446698314'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/59711892446698314'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/06/fiddling-around-and-simple-storage.html' title='Fiddling around and the simple storage solution'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_IoitLPp2rZ8/Rnvv0oFwiAI/AAAAAAAAAFA/PGFycu5Tj0c/s72-c/Yellow-Fiddler-Crab-On-Sand-Beach-Closeup.Jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-1415908792794754485</id><published>2007-06-06T08:28:00.000Z</published><updated>2007-06-06T10:56:51.816Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Amazon Elastic Computing Cloud'/><title type='text'>In the queue for the ECC</title><content type='html'>There have been lots of things going on over here for the past month but nothing really blog worthy, aside from this, having a baby has somewhat curtailed my late night blogging sessions, so this is the first post since May 10&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;th&lt;/span&gt;!&lt;br /&gt;&lt;br /&gt;We have signed up for the &lt;a href="http://www.amazon.com/gp/browse.html?node=201590011"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;ECC&lt;/span&gt;,&lt;/a&gt; this is not another odd-ball European thingy but in fact &lt;a href="http://www.amazon.com"&gt;Amazon's&lt;/a&gt; new web service christened the Elastic Computing Cloud. The concept is what is known as &lt;a href="http://en.wikipedia.org/wiki/Utility_computing"&gt;utility computing&lt;/a&gt; in that you create a new Virtual Machine and only pay for the storage and processor time you use. This means that within reason your online application can scale wonderfully from being a dusty corner of the web which no-one ever uses to the latest craze with millions of users in minutes and your server wouldn't crash (as long as your code is well written of course).&lt;br /&gt;&lt;br /&gt;We have a little online application which we will very shortly be polishing for general release and this seems like a great opportunity to keep our initial installation costs very low but have the ability to scale quickly to meet the needs of our new users :o) Then of course, when things have settled down, and we know what sort of power we are going to require long term we can make a more informed &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;decision&lt;/span&gt; about buying our own hosting kit without having to wade through goat intestines with the help of a good soothsayer.&lt;br /&gt;&lt;br /&gt;The spanner in the works of course is that everyone else want to make use of this wonderful new service as well and I have found myself in the queue. This seems to be a rather annoying trend in fact, I queued for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Joost&lt;/span&gt;, I queued for Google applications for Domains and now I am in another queue. I suppose it allows companies to test their systems without having a big &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;embarrassing&lt;/span&gt; launch followed by teething trouble but I want it now :o(&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_IoitLPp2rZ8/RmaRsIFwh_I/AAAAAAAAAE4/sxo8tQS2rIo/s1600-h/jamdoughnut.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp0.blogger.com/_IoitLPp2rZ8/RmaRsIFwh_I/AAAAAAAAAE4/sxo8tQS2rIo/s400/jamdoughnut.JPG" alt="" id="BLOGGER_PHOTO_ID_5072902217551349746" border="0" /&gt;&lt;/a&gt;I have looked for alternatives but it seems &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;no one&lt;/span&gt; else is offering such a simple, well supported and dare I say cheap service within the means of the average web applications developer. Until now utility computing was in fact the preserve of the scientist wanting to test his &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;quantum&lt;/span&gt; theories or analyse what happens in the middle of a cosmic jam doughnut (think SETI) so it seems Amazon are possibly on the cusp of having a runaway success. Every applications developer who doesn't want to ask his boss for a new server and equally doesn't want potentially unstable code on one of his precious live servers will want an account for testing stuff.&lt;br /&gt;&lt;br /&gt;I am only surprised that Amazon beat &lt;a href="http://www.google.com"&gt;Google &lt;/a&gt;to it as its just their sort of thing, I look forward to using the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;gutility&lt;/span&gt; computing cloud in about 2 months (probably for free) and inevitably the Microsoft computing cloud in about 2 years which will be compliant with the utility computing standards which the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;IEEE&lt;/span&gt; will have created and ratified by then but with of course.... Microsoft extensions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-1415908792794754485?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/1415908792794754485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=1415908792794754485' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/1415908792794754485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/1415908792794754485'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/06/in-queue-for-ecc.html' title='In the queue for the ECC'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_IoitLPp2rZ8/RmaRsIFwh_I/AAAAAAAAAE4/sxo8tQS2rIo/s72-c/jamdoughnut.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-1949947488137075639</id><published>2007-05-10T16:27:00.000Z</published><updated>2007-05-11T08:21:22.966Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Backup'/><category scheme='http://www.blogger.com/atom/ns#' term='VMWare'/><category scheme='http://www.blogger.com/atom/ns#' term='Virtual Disk'/><category scheme='http://www.blogger.com/atom/ns#' term='Red Gate'/><category scheme='http://www.blogger.com/atom/ns#' term='Centos'/><title type='text'>Finding extra space on a VMWare Virtual Machine</title><content type='html'>Now our &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Redgate&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;SQL&lt;/span&gt; Server backup system is running nicely it has exposed a slight deficiency in my server setup over in Manchester, the problem now is that when I created virtual machines for all our little applications running on the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;VMware&lt;/span&gt; system I only gave then 4GB disks :o)&lt;br /&gt;&lt;br /&gt;For the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Nagios&lt;/span&gt; system, the Intranet applications, the source code repository and the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;knowledgebase&lt;/span&gt; these disks are perfectly adequate but for database backup obviously a bit more space is required. Having utilised a spare folder on the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;knowledgebase&lt;/span&gt; virtual server for the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;SQL&lt;/span&gt; Backup it would have been very &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;inconvenient&lt;/span&gt; to erase the machine and create a new one and also given the fact that the host server is not overburdened with RAM I didn't feel it would be wise to put more than 4 machines on the system.&lt;br /&gt;&lt;br /&gt;So we come to a less well documented feature of a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;VMWare&lt;/span&gt; virtual machine, when you set the hard disk size on creating the machine you cannot increase it in the future. So you have 2 choices, the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;Lego&lt;/span&gt; approach - smash it up and start again, or the clever approach, add on a new virtual disk. I chose to be clever and in a nice twist of fate got away with it :o)&lt;br /&gt;&lt;br /&gt;So I think a little how-to is in order.&lt;br /&gt;&lt;br /&gt;Begin by adding a new disk in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;VMWare&lt;/span&gt;, it was recommended that I choose a SCSI disk so I complied, bear in mind this has to be done with the virtual &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;machine&lt;/span&gt; powered down. When you have added the disk just power up again and you are there, all you have to do now is to get your &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_12"&gt;Linux&lt;/span&gt; install to make use of it.&lt;br /&gt;&lt;br /&gt;As I have blogged before our flavour of choice when it comes to &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_13"&gt;Linux&lt;/span&gt; is &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;CentOS&lt;/span&gt; but &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;RHEL&lt;/span&gt;4 or Fedora would probably work in exactly the same way because its pretty basic stuff really.&lt;br /&gt;&lt;br /&gt;First use &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;Fdisk&lt;/span&gt; to create a new partition, as this is our second disk its &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;SDB&lt;/span&gt; (SCSI Disk B)&lt;br /&gt;so:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;fdisk&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;sbd&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;and then just follow the instructions to create a new partition.&lt;br /&gt;&lt;br /&gt;Next you need to format the new disk so:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;mkfs&lt;/span&gt;.ext2 /&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;dev&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;sdb&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;At this point you need to check the space on the disk so:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;df&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;and you should see your new disk listed&lt;br /&gt;&lt;br /&gt;Finally you need to mount the disk so:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;mount -t ext2 /&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;dev&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;sdb&lt;/span&gt; /home/samba/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;sql&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As I was using samba to share the /home/samba folder all I needed to do was update the permissions on the folder and restart the service - job done.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_IoitLPp2rZ8/RkQlyFQxq-I/AAAAAAAAAEw/9biczzrTiAc/s1600-h/TimelineGUI.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp3.blogger.com/_IoitLPp2rZ8/RkQlyFQxq-I/AAAAAAAAAEw/9biczzrTiAc/s400/TimelineGUI.gif" alt="" id="BLOGGER_PHOTO_ID_5063213423407508450" border="0" /&gt;&lt;/a&gt;Now I have a bit more space on the share the backup has worked a treat, it is one of the real strengths of the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_27"&gt;Red Gate&lt;/span&gt; system that you can see &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_28"&gt;immediately&lt;/span&gt; how your backup routine is performing using the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;timeline&lt;/span&gt; GUI. As you can see from the picture here the first couple of databases backed up nicely but given that they are larger databases they are a bit snug so I might just ease them apart a little so we &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_30"&gt;don't&lt;/span&gt; get a clash as they grow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-1949947488137075639?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/1949947488137075639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=1949947488137075639' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/1949947488137075639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/1949947488137075639'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/05/finding-extra-space-on-vmware-virtual.html' title='Finding extra space on a VMWare Virtual Machine'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_IoitLPp2rZ8/RkQlyFQxq-I/AAAAAAAAAEw/9biczzrTiAc/s72-c/TimelineGUI.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-1515053315511803005</id><published>2007-05-01T16:18:00.000Z</published><updated>2007-05-01T19:30:38.804Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL server'/><category scheme='http://www.blogger.com/atom/ns#' term='backup'/><category scheme='http://www.blogger.com/atom/ns#' term='network share'/><category scheme='http://www.blogger.com/atom/ns#' term='compression'/><title type='text'>SQL bakcup - a can of worms!</title><content type='html'>It seems that the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;SQL&lt;/span&gt; Backup market place is far busier and competitive than I had imagined, no sooner had I arrived in the office this morning than a nice person from Quest Software, makers of Lite Speed, finally caught up with me and set me right on the technology and the price. It seems they have a very interesting suite of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;SQL&lt;/span&gt; server products all of which make the standard Microsoft tools easier to use and in some cases adding functionality, the version I had seen yesterday happened to be the developer version at $45, a full version for our setup being £700 - a bit of a jump. In the end I spoke to 3 people there and came away with a whole heap of good advice and technical background to the product.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_IoitLPp2rZ8/RjePWVQxq8I/AAAAAAAAAEg/aI-cy8cjsc4/s1600-h/img_0953_1.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp3.blogger.com/_IoitLPp2rZ8/RjePWVQxq8I/AAAAAAAAAEg/aI-cy8cjsc4/s400/img_0953_1.JPG" alt="" id="BLOGGER_PHOTO_ID_5059670320201444290" border="0" /&gt;&lt;/a&gt;No sooner had I finished on the phone than I had a very pleasant representative from Red-Gate, makers of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;SQL&lt;/span&gt; Backup, on the phone wanting to discuss my recent blog post (Gulp!). Actually it turns out that instead of wanting to sue me for mentioning their software on my rather random blog he wanted to give me a full pitch for the product and was very happy to offer a cheeky discount, a good deal on support and some very good advice about which product was right for us. It also turns out that I was already out of date as version 5 had come out over night and I am just in the process of kicking that around. The benchmark looks about the same, maybe a slight improvement in performance, but it has a rather &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;nifty&lt;/span&gt; new GUI which plots your backup activity on a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;time line&lt;/span&gt; graphic so you can visually see whether your backup schedules are in danger of overlapping and going into a shame spiral. (Cue - dip into Google images for shame spiral and discovering a picture which is also fitting for the genius which is the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;time line&lt;/span&gt; GUI).&lt;br /&gt;&lt;br /&gt;My next step was to download a trial of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;HyperBac&lt;/span&gt; to evaluate their approach which shuns the extended stored &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;procedures&lt;/span&gt; of the other products in favour of a totally stand alone setup for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;SQL&lt;/span&gt; backup. This in turn invited another phone conversation as I actually gave my real phone number when downloading :o) It seems the nice people who created &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;HyperBac&lt;/span&gt; where originally involved with creating Lite Speed and they decided to create a new company with a new approach a while ago. Again their sales dude was a wealth of information about the strengths and weaknesses of the various approaches taken and was very helpful indeed. The cost for our setup was $499 irrespective of the number of processors we wanted to throw at it and as such it sits directly between the other 2 products. Having played with the system it performs well but I would say that both &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Xceleon&lt;/span&gt; and Quest will be interested to have a good squint at &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;SQL&lt;/span&gt; Backup version 5 as they are both slightly quicker but overall I think Red-Gate have it.&lt;br /&gt;&lt;br /&gt;I have set our demo rig up for hourly backups overnight so I will be interested to see what is waiting for me by the time I get in tomorrow morning! Hopefully a useful archive of backups which all restore perfectly.... we'll see :o)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-1515053315511803005?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/1515053315511803005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=1515053315511803005' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/1515053315511803005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/1515053315511803005'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/05/sql-bakcup-can-of-worms.html' title='SQL bakcup - a can of worms!'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_IoitLPp2rZ8/RjePWVQxq8I/AAAAAAAAAEg/aI-cy8cjsc4/s72-c/img_0953_1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-335625427708228222</id><published>2007-04-30T15:51:00.000Z</published><updated>2007-04-30T19:25:37.438Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL Backup'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows Network'/><category scheme='http://www.blogger.com/atom/ns#' term='Red Gate'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux Share'/><category scheme='http://www.blogger.com/atom/ns#' term='SAMBA'/><title type='text'>Remote SQL backup onto SAMBA Shares</title><content type='html'>Backup is a subject which comes up a lot on the rack as regular readers will already have noticed and I have already detailed several of the strategies we employ to make sure we have a myriad of copies of our &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;essential&lt;/span&gt; data spread across the network, preferably as far apart as possible! Our latest investigation concerned how to get a usable copy of our most &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;precious&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;bloatie&lt;/span&gt;&lt;/span&gt; database from our &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;SQL&lt;/span&gt;&lt;/span&gt; Server 2000 installation across the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;VPN&lt;/span&gt;&lt;/span&gt; (and therefore Cheshire) on a regular basis.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_IoitLPp2rZ8/RjYR8FQxq7I/AAAAAAAAAEY/_-oCCczFRig/s1600-h/bloated2.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp1.blogger.com/_IoitLPp2rZ8/RjYR8FQxq7I/AAAAAAAAAEY/_-oCCczFRig/s400/bloated2.jpg" alt="" id="BLOGGER_PHOTO_ID_5059250955299695538" border="0" /&gt;&lt;/a&gt;Time for a topical and amusing dip into &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;Google&lt;/span&gt; images for the word of the day - bloated, as in a very large database. This little marmot, who obviously has a small pie problem represents our database for this afternoon.&lt;br /&gt;&lt;br /&gt;The data to be moved is 1.3 GB over a 2MB line from a Windows 2003 Server to a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;Linux&lt;/span&gt; partition on our &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;CentOS&lt;/span&gt; virtual machine.  Given all the other scheduled &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;adminnie&lt;/span&gt;&lt;/span&gt; jobs we have going on overnight I cannot afford for the whole process to take more than about 30 minutes, I sometimes think the network is busier out of office hours!&lt;br /&gt;&lt;br /&gt;The solution is of course to compress the backup before sending it and it turns out that after a little investigation there are a couple of products on the market which do this for you. After only a brief search I found &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;SQL&lt;/span&gt; Backup by &lt;a href="http://www.red-gate.com"&gt;Red-Gate Software&lt;/a&gt; and Lite Speed for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;SQL&lt;/span&gt; Server by &lt;a href="http://www.quest.com"&gt;Quest&lt;/a&gt; which both offer on the fly compression and encryption to boot. One might have expected &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;Microsoft&lt;/span&gt; to include a compression option in their rather expensive server system but one would be wrong as usual (thanks Bill). Bit less time writing the EULA and more on the software next time eh?&lt;br /&gt;&lt;br /&gt;Moving swiftly on, the products mentioned above are &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;relatively&lt;/span&gt; simple in their approach in that they add some system stored &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;procedures&lt;/span&gt; to your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;SQL&lt;/span&gt;&lt;/span&gt; Server install which can be scheduled to run, adding compression and or encryption to a standard full or differential backup. The cost is quite manageable as well at $45 to $399, &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_12"&gt;which&lt;/span&gt; is a lot less than the time would cost to build our own script! But incidentally if anyone is interested &lt;a href="http://www.databasejournal.com/features/mssql/article.php/3556461"&gt;here is a start&lt;/a&gt;. Installing the programs on our test bench was easy and initially everything was very straight forward until we tried to send it to our &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_13"&gt;Linux&lt;/span&gt; machine....&lt;br /&gt;&lt;br /&gt;In order to share a folder on Linux one requires the cooperation of a service called &lt;a href="http://www.samba.org"&gt;SAMBA&lt;/a&gt; which is really quite powerful and therefore complicated, sharing a folder to any Tom Dick or Harry is very well documented and quite easy. Authenticating against our active directory and sharing with our windows machine requires the services of a good soothsayer however and is somewhat &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_14"&gt;sparsely&lt;/span&gt; documented!&lt;br /&gt;&lt;br /&gt;Having finally got a shared folder onto the windows network I thought the job was done but &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_15"&gt;unfortunately&lt;/span&gt; I hadn't counted on a couple of less well documented features of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;SQL&lt;/span&gt;&lt;/span&gt; server.&lt;br /&gt;&lt;br /&gt;1. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;SQL&lt;/span&gt;&lt;/span&gt; Server does not like backing up to network shares that are not in the same work group&lt;br /&gt;2. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;SQL&lt;/span&gt;&lt;/span&gt; Server will not offer to &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_19"&gt;re authenticate&lt;/span&gt;, the user account &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;SQL&lt;/span&gt;&lt;/span&gt; Server logs in on must have explicit and full access to the network share.&lt;br /&gt;&lt;br /&gt;I would love to give a blow by blow account of how I got the network share going but I have been chipping away at this problem sporadically and unfortunately I have sort of lost track of how I got where we are.&lt;br /&gt;&lt;br /&gt;Having taken a while to sort this I have finally got some comparative data and I am very impressed indeed! Given that a 2MB line is really quite modest, &lt;a href="http://www.red-gate.com/products/SQL_Backup/case_studies/speed_backups.htm"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;SQL&lt;/span&gt;&lt;/span&gt; Backup&lt;/a&gt; managed to compress, encrypt and squeeze a 1.4 GB database down to 250 MB and ferry it across Cheshire in 20 minutes and 10 seconds! It took me a while longer to get &lt;a href="http://www.quest.com/litespeed-for-sql-server/"&gt;Lite Speed&lt;/a&gt; up and running but at only $45 it ripped through the compression and transfer in a mere 10 minutes and shaved 30 MB of the storage requirements at 220 MB! Its my new best friend and I would &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_22"&gt;recommend&lt;/span&gt; it to anyone looking to get their database backups as far away from them as possible. The only thing left to sort out is that I cannot afford to change the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;logon&lt;/span&gt; account for the main server as I did on the test machine so hopefully I can get SAMBA to cooperate with the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_14"&gt;existing&lt;/span&gt; setup this time :o)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-335625427708228222?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/335625427708228222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=335625427708228222' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/335625427708228222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/335625427708228222'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/04/remote-sql-backup-onto-samba-shares.html' title='Remote SQL backup onto SAMBA Shares'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_IoitLPp2rZ8/RjYR8FQxq7I/AAAAAAAAAEY/_-oCCczFRig/s72-c/bloated2.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-2303489260287068133</id><published>2007-04-18T15:51:00.000Z</published><updated>2007-04-18T21:24:40.266Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Adobe CS3'/><category scheme='http://www.blogger.com/atom/ns#' term='Nagios'/><category scheme='http://www.blogger.com/atom/ns#' term='Service Monitoring'/><title type='text'>Nagios - The Final Word</title><content type='html'>Having posted about installing Nagios on CentOS I have finally had a few comments on BeerBytes (Hooray). I have also featured on 2 little news posts on other Linux sites as well &lt;a href="http://searchenterpriselinux.techtarget.com/originalContent/0,289142,sid39_gci1251828,00.html"&gt;click here&lt;/a&gt; for the latest and check out the blogroll right for a proper link. Given the obvious appetite for this subject (no not me - network monitoring) I suppose its only fair that I should continue dispensing nuggets of information given that its the only subject which has raised a flicker of interest.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_IoitLPp2rZ8/RiaFijZA4iI/AAAAAAAAAEQ/EKpMYXaw4yM/s1600-h/Network_Map.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp2.blogger.com/_IoitLPp2rZ8/RiaFijZA4iI/AAAAAAAAAEQ/EKpMYXaw4yM/s400/Network_Map.jpg" alt="" id="BLOGGER_PHOTO_ID_5054874460432163362" border="0" /&gt;&lt;/a&gt;Having got the basics set up I spent some time last week getting the network diagram straight, as we have quite a busy network with 60 nodes I wanted to monitor, the automatic function did not do it justice. Moving on from this I fell foul of having installed the incorrect plugin archive, for some reason check_ping worked fine but I wanted to start monitoring DNS, MySQL and HTTP on a couple of servers and these plugins would not run. In order to test your plugins you can simply move to the plugins directory and type ./pluginname, for example &lt;span style="font-style: italic;"&gt;./check_ping --help&lt;/span&gt; will tell you what command line parameters the ping plugin requires then try it again with these supplied. To continue the example &lt;span style="font-style: italic;"&gt;./check_ping -H  www.yahoo.com -w 1000,10% -c  1000,10%  &lt;/span&gt;&lt;br /&gt;returns PING OK - Packet loss = 0%, RTA = 84.63 ms. The commands are already set up for the standard plugins in commands.cfg if your install was ok.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So to sort this problem out I ran off to try my old mate DAG's archive :o) I found the appropriate rpm and bingo, everything works well. If your are relativly new to Linux as I am and you are struggling to connect to the repository on yum or using rpm there is a quick and dirty work around. Simply find the link to the rpm in your web browser, copy the link, get back to your shell and type wget and paste the link, this will download it to your machine. Next type rpm -i and the name of the downloaded file and this will install everything, apologies if that was embarrisingly basic but yum can be a bit hit and miss for me.&lt;br /&gt;&lt;br /&gt;The documentation for installing Nagios is quite good but the documentation for actually using some of the many and various standard plugins is really quite sketchy so look outside the Nagios.org site for this information. The &lt;a href="http://nagiosplug.sourceforge.net/"&gt;Nagios plugins page&lt;/a&gt; on sourceforge is your starting point for this but its not obvious.&lt;br /&gt;&lt;br /&gt;In order to start monitoring services a little editing of the services.cfg is required followed by creating a couple of new hostgroups for similar machines. For example I wanted to monitor Mysql on 2 machines so I declared the service in services.cfg as follows&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;define service{&lt;br /&gt;      use                             generic-service&lt;br /&gt;      name                            mysql-service&lt;br /&gt;      is_volatile                     0&lt;br /&gt;      check_period                    24x7&lt;br /&gt;      max_check_attempts              5&lt;br /&gt;      normal_check_interval           1&lt;br /&gt;      retry_check_interval            1&lt;br /&gt;      notification_interval           20&lt;br /&gt;      notification_period             24x7&lt;br /&gt;      notification_options            n&lt;br /&gt;      check_command                   check-mysql-alive&lt;br /&gt;      service_description             MYSQL&lt;br /&gt;      contact_groups                  nerds&lt;br /&gt;      hostgroup_name                  mysql_servers&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This will check the hostgroup mysql_servers every minute, 24 hours a day and email the nerd group if there is a problem for 5 successive queries. It presumes a standard install which predefines the 24x7 time period and the check-mysql-alive command in the realvent files.&lt;br /&gt;&lt;br /&gt;Now that I have these extra services being monitored there is some really quite useful informtion being generated, for example the number of connections connected to the MySQL servers and the response times for the HTTP servers. Another area which is being fine tuned via the timegroups.cfg file is when I want to be alerted about certain things, for example I quite like getting an email if a router goes down overnight but as some equipment is turned off overnight I dont particularly need to know. So in short just getting Nagios installed is the tip of the iceberg, the more you think about things the more instances where good network monitoring is useful become apparent. The good news is that this fine tuning is very quick and easy once you have the thing up and running.&lt;br /&gt;&lt;br /&gt;One final point on Nagios before everyone gets bored is that on windows you can actually use active desktop to embed your live network map into your desktop making sure you never miss a trick :o) Simply go to desktop properties-&gt;customise and paste your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Nagios&lt;/span&gt;&lt;/span&gt; address followed by /&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;cgi&lt;/span&gt;&lt;/span&gt;-bin/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;statusmap&lt;/span&gt;&lt;/span&gt;.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;cgi&lt;/span&gt;&lt;/span&gt;?host=all into a new web address to embed into the desktop.&lt;br /&gt;&lt;br /&gt;Some other things happening in our little team include a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;spontaneous&lt;/span&gt; upgrade to Adobe CS3, I haven't even got it installed yet so you will all have to wait for some views and &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;opinion&lt;/span&gt; but one thing to remember is that you need bags of &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;hard disk&lt;/span&gt; space, the download is about 1.5 GB and then it unpacks to nearer 2 GB then needs 5.6GB for the programs, so unless you want to be cleaning up after every stage you need about 10GB! Also the knowledge base is filling nicely and the more I use the product the more I like it, just one little point is that you have to keep going to different &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;URL's&lt;/span&gt;&lt;/span&gt; to do different things, it does not check your security and give you all the options you are entitled to.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-2303489260287068133?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/2303489260287068133/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=2303489260287068133' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/2303489260287068133'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/2303489260287068133'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/04/nagios-final-word.html' title='Nagios - The Final Word'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_IoitLPp2rZ8/RiaFijZA4iI/AAAAAAAAAEQ/EKpMYXaw4yM/s72-c/Network_Map.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-8624021842727994440</id><published>2007-04-13T11:06:00.000Z</published><updated>2007-04-13T11:58:55.785Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tortoise'/><category scheme='http://www.blogger.com/atom/ns#' term='Subversion'/><category scheme='http://www.blogger.com/atom/ns#' term='Verson Control'/><category scheme='http://www.blogger.com/atom/ns#' term='SVN'/><category scheme='http://www.blogger.com/atom/ns#' term='Dreamweaver'/><title type='text'>A two pronged approach to vesion control</title><content type='html'>We had a little IT retreat &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;earlier&lt;/span&gt; this week to discuss how we can more &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;effectively&lt;/span&gt; work as a team, already this has spawned the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;knowledge base&lt;/span&gt; which we are &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;diligently&lt;/span&gt; filling with guff, but another thing which became apparent is that we need tighter version control on the source code for the applications we are developing. The aim being to make it easier for several people to work on the applications together without constantly tripping over each other trying to edit the same files.&lt;br /&gt;&lt;br /&gt;In a previous project myself and &lt;a href="http://www.bugeyed.me.uk/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;compadre&lt;/span&gt; Rob&lt;/a&gt; created a sports club management tool as a team and it very &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;noticeably&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;benefited&lt;/span&gt; from the contrasting styles and knowledge which was brought to bear on the task. We used &lt;a href="http://subversion.tigris.org/"&gt;subversion&lt;/a&gt; for source control on this project running on windows and although it was very useful it never quite delivered on all sides.&lt;br /&gt;&lt;br /&gt;The reasons for this were mainly due to the focus of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;SVN&lt;/span&gt; being for text based source code and the merge principle of team work. For example, if two people work on the same text file &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;simultaneously&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;svn&lt;/span&gt; can very cleverly merge together the separate changes and 9 times out of 10 they will not conflict. Where the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;SVN&lt;/span&gt; system begins to come unstuck is when using non text based source files like Flash FLA files, as these use a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;proprietary&lt;/span&gt; format you cannot merge files if 2 people have &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;simultaneously&lt;/span&gt; changed them, you &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_13"&gt;immediately&lt;/span&gt; end up in conflict. So in this scenario you need to lock a file on the server when you are editing so that no one else can open it, the problem is that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;SVN&lt;/span&gt; is not very good at this, unless as can happen, I have missed something.&lt;br /&gt;&lt;br /&gt;Given that our new systems are being developed in Flash with support from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;PHP&lt;/span&gt; files and a little MySQL thrown in I decided to look more closely at the version control on offer in Flash and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;Dreamweaver&lt;/span&gt;. It turns out that although the current system is very good at locking files using their 'Check In' 'Check Out' philosophy it is not quite so good at keeping an entire repository &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_17"&gt;synchronised&lt;/span&gt; unless &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;Dreamweaver&lt;/span&gt; is your weapon of choice. As each of us in the team prefer different HTML editors this will work very well for the Flash files but not for the project as a whole. According to the Adobe site the new version of CS3 has been greatly improved in this respect.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_IoitLPp2rZ8/Rh9wE4FkhqI/AAAAAAAAAEI/Cs4SXB_zy64/s1600-h/tortoise.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp0.blogger.com/_IoitLPp2rZ8/Rh9wE4FkhqI/AAAAAAAAAEI/Cs4SXB_zy64/s400/tortoise.jpg" alt="" id="BLOGGER_PHOTO_ID_5052880536010524322" border="0" /&gt;&lt;/a&gt;So the solution which seems to present itself here is in fact to use both systems in tandem with Flash taking care of its &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_19"&gt;proprietary&lt;/span&gt; source files and subversion via &lt;a href="http://tortoisesvn.tigris.org/"&gt;tortoise&lt;/a&gt; in my case taking care of the text based files and having overall &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_20"&gt;responsibility&lt;/span&gt; for the repository. Touch wood this seems to be working nicely but we have yet to get the whole team working on the project &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_21"&gt;simultaneously&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;If anyone else fancies having a go at this, installing subversion on a new virtual server is very straight forward and there are lots of good tutorials on the subject &lt;a href="http://wiki.centos.org/SubVersion"&gt;click here&lt;/a&gt; for the definitive guide for &lt;a href="http://wiki.centos.org/SubVersion"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;CentOS&lt;/span&gt;.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://livedocs.adobe.com/flash/mx2004/main_7_2/wwhelp/wwhimpl/common/html/wwhelp.htm?context=Flash_MX_2004&amp;amp;file=00000890.html"&gt;Adobe site &lt;/a&gt;or the online help for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;Dreamweaver&lt;/span&gt; or Flash is the best place for information on how to use the current simple &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;Macromedia&lt;/span&gt; version control.&lt;br /&gt;&lt;br /&gt;And finally there is a &lt;a href="http://www.olddognewtricks.co.uk/2006/12/subversion_tidy.html"&gt;short article here&lt;/a&gt; about fine tuning the setup when using both of these systems concurrently.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-8624021842727994440?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/8624021842727994440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=8624021842727994440' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/8624021842727994440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/8624021842727994440'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/04/two-pronged-approach-to-vesion-control.html' title='A two pronged approach to vesion control'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_IoitLPp2rZ8/Rh9wE4FkhqI/AAAAAAAAAEI/Cs4SXB_zy64/s72-c/tortoise.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-5801122201591159732</id><published>2007-04-11T11:24:00.000Z</published><updated>2007-04-11T12:19:00.279Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Knowledge Management'/><category scheme='http://www.blogger.com/atom/ns#' term='Twiki'/><category scheme='http://www.blogger.com/atom/ns#' term='PHPKB'/><title type='text'>The IT Brain Dump</title><content type='html'>One thing we have always struggled with in our little IT department is the sharing of important information. If I set up a new system I might note the details in a book or even on a shared document but we have never quite found a system which works for us all and as a result we cannot always put our hands on other peoples knowledge quickly and easily. Last week we decided to have another go at organising our information again and whilst wading through the available knowledge management tools came across a couple of gems.&lt;br /&gt;&lt;br /&gt;One system which came top of the list on Google was an open source system called &lt;a href="http://twiki.org"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Twiki&lt;/span&gt; &lt;/a&gt;which I must say was my first choice for a while. They have some very big companies using the software and it looks like a very simple system, which in the tradition of wiki allows all users to contribute towards a knowledge base. I think my main gripe was that I wanted something which looked a bit more easily organised and more like an application than a simple website, although in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Twiki's&lt;/span&gt; defence I did only look through the demo for a few minutes.&lt;br /&gt;&lt;br /&gt;The product I found in the end was a very nice &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;PHP&lt;/span&gt; application called &lt;a href="http://www.knowledgebase-script.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;PHPKB&lt;/span&gt;&lt;/a&gt; as in &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;PHP&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;Knowledge base&lt;/span&gt;. Although this would not be to &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;every ones&lt;/span&gt; taste the fact that the application is available as a simple and very reasonable series of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;PHP&lt;/span&gt; pages suits our setup here perfectly. You have to have access to, or know how to setup, a web server and a MySQL database to serve this application but I did note that the company offer a free setup service and they do have a hosted option. We simply added a new virtual server to our main Virtual Host and had the system running in about an hour. The &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;installation&lt;/span&gt; is quite simple and managing the system once its running is very straight forward, I have already started posting bits of information about systems and its surprising once you get started how many very important nuggets are stashed on emails and even in your head.&lt;br /&gt;&lt;br /&gt;One of the other nice things about this particular system is that some categories of information can be public and some can be protected, so that in depth technical information can be &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;cordoned&lt;/span&gt; off but some of the less technical information and tips can be made available to everyone in the organisation. As with all systems the usefulness is only going to become apparent when we have been using it for some time but I would say that with a little &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;perseverance&lt;/span&gt; it has the potential to save an awful lot of time and stress.&lt;br /&gt;&lt;br /&gt;On another point regular readers of '&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;AVFTR&lt;/span&gt;' will have noticed that someone actually commented on a post yesterday :o) In fact the nice gentleman concerned even &lt;a href="http://enterpriselinuxlog.blogs.techtarget.com/"&gt;Blogged about the Blog&lt;/a&gt;! I must add it to the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;Blogroll&lt;/span&gt;. I am now braced for a massive increase in traffic, I might call &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;Blogspot&lt;/span&gt; to make sure they have capacity because in the last 4 hours of yesterday I had 30 visitors.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-5801122201591159732?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/5801122201591159732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=5801122201591159732' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/5801122201591159732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/5801122201591159732'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/04/it-brain-dump.html' title='The IT Brain Dump'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-8859554080357226607</id><published>2007-04-05T10:52:00.000Z</published><updated>2007-04-10T21:27:33.445Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='VPN'/><category scheme='http://www.blogger.com/atom/ns#' term='Dag'/><category scheme='http://www.blogger.com/atom/ns#' term='Nagios'/><category scheme='http://www.blogger.com/atom/ns#' term='Centos'/><title type='text'>Nagios on Centos - a grudging union</title><content type='html'>&lt;a href="http://www.centos.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Centos&lt;/span&gt;&lt;/a&gt; is one of the great network operating systems, it was developed by a group of people who saw &lt;a href="http://www.redhat.com/rhel/"&gt;Red Hat Enterprise version 4&lt;/a&gt; had become super reliable but slightly &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;bloaty&lt;/span&gt;, they &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;exercised&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;their&lt;/span&gt; rights under the GNU public license got the source of &lt;a href="http://www.redhat.com/rhel/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;RHEL&lt;/span&gt;4&lt;/a&gt;, put it on a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;stairmaster&lt;/span&gt; and gave it to the people.&lt;br /&gt;&lt;br /&gt;Likewise &lt;a href="http://nagios.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Nagios&lt;/span&gt;&lt;/a&gt; is a great open source network monitoring system, if you are a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;Linux&lt;/span&gt; user and run a network chances are you will have come across &lt;a href="http://nagios.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Nagios&lt;/span&gt;&lt;/a&gt;, short of forking out about £1000 it is in fact pretty much your only option. About 12 months ago I installed &lt;a href="http://nagios.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;Nagios&lt;/span&gt;&lt;/a&gt; on &lt;a href="http://fedoraproject.org/wiki/"&gt;Fedora&lt;/a&gt; and it was a breeze, even though &lt;a href="http://nagios.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Nagios&lt;/span&gt;&lt;/a&gt; is a very comprehensive system requiring lots of fiddly configuration, on &lt;a href="http://www.fedoraproject.org/"&gt;Fedora&lt;/a&gt; if you follow the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;instructions&lt;/span&gt; you will succeed in getting going in about an hour.&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_12"&gt;Unfortunately&lt;/span&gt; given that &lt;a href="http://www.centos.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;Centos&lt;/span&gt;&lt;/a&gt; and Fedora have a common ancestry and are very similar, trying to install &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;Nagios&lt;/span&gt; on &lt;a href="http://www.centos.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;Centos&lt;/span&gt;&lt;/a&gt; will drive you up the wall. Unless I have done something stupid without realising it, installing the system from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;RHEL&lt;/span&gt;4 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;RPM's&lt;/span&gt; seems to scatter the files from one end of the disk to the other and it takes lots of patience to track them all down and link everything up. My advice would be follow the instructions to the letter but if you &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_18"&gt;don't&lt;/span&gt; find the files you are looking for don't be surprised. &lt;a href="http://nagios.org/docs/"&gt;Click here&lt;/a&gt; for the main &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;Nagios&lt;/span&gt; site, this post is not a guide to installing &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;Nagios&lt;/span&gt; on &lt;a href="http://www.centos.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;Centos&lt;/span&gt;&lt;/a&gt; just an &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_22"&gt;amendment&lt;/span&gt; to the install guide based upon my rather frustrating experience.&lt;br /&gt;&lt;br /&gt;Just in case I forget or anyone else trips over this, the locations are as follows:&lt;br /&gt;&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;Config&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;CFG&lt;/span&gt; files          - /etc/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;nagios&lt;/span&gt;&lt;br /&gt;Web interface files      - /&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;usr&lt;/span&gt;/share/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;nagios&lt;/span&gt;&lt;br /&gt;Log files                        - /var/log/&lt;br /&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;CGI&lt;/span&gt; files                              - /&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;usr&lt;/span&gt;/lib/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;nagios&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;cgi&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_IoitLPp2rZ8/RhTg2MSmyrI/AAAAAAAAAEA/wdzBcNx59sI/s1600-h/Dag.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp0.blogger.com/_IoitLPp2rZ8/RhTg2MSmyrI/AAAAAAAAAEA/wdzBcNx59sI/s400/Dag.jpg" alt="" id="BLOGGER_PHOTO_ID_5049908303805991602" border="0" /&gt;&lt;/a&gt;A guy called &lt;a href="http://dag.wieers.com/rpm/packages/nagios/"&gt;Dag &lt;/a&gt;(??) has done some &lt;a href="http://www.centos.org/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;Centos&lt;/span&gt; &lt;/a&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;RPM's&lt;/span&gt; but I couldn't subscribe to his repository, if you can it is quite possible that he has reworked the install to follow the instructions. Couldn't resist doing my 'Google Images' thing for Dag, turns out this Swedish guy is also comfortable going my the name Dag. There are some great translations for Dag on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;wikipedia&lt;/span&gt;, in Swedish it means 'Day' and  in Turkish it refers to a 'Mountain'.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So now the dust has settled after our mammoth network rewire last week and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;Nagios&lt;/span&gt; is running sweetly I feel quite satisfied with everything. As expected we have had a few static routes crawl out of the woodwork and we have &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_36"&gt;renewed&lt;/span&gt; our efforts to use &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;DNS&lt;/span&gt; rather that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;IP&lt;/span&gt; addresses for routing around the network. It turns out reversing the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;VPN&lt;/span&gt; connections was not all that it promised and we have moved them all back again, it also seems that having &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;Nagios&lt;/span&gt; running is actually very good for the stability of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_41"&gt;VPN&lt;/span&gt; as the frequent pinging seems to keep the routers awake and the tunnels in good repair.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_IoitLPp2rZ8/RhTduMSmyqI/AAAAAAAAAD4/B901l9NakUM/s1600-h/Nagios.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp0.blogger.com/_IoitLPp2rZ8/RhTduMSmyqI/AAAAAAAAAD4/B901l9NakUM/s400/Nagios.jpg" alt="" id="BLOGGER_PHOTO_ID_5049904867832154786" border="0" /&gt;&lt;/a&gt;One  job left to complete is to define a custom status map for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_42"&gt;Nagios&lt;/span&gt;, as we have over a hundred nodes on the network being monitored the auto generated map is a bit of a mess so I have to define the map by hand which is a bit of a pain. That said it will look very nice as we have purchased an icon library for our software development and their networking set is very sweet. See left for a sneak peek, note however that our main managed switches are not down it is just that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_43"&gt;Netgear&lt;/span&gt; have issued a firmware upgrade they are short of. One day I would love to do a more comprehensive Flash front-end to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_44"&gt;Nagios&lt;/span&gt; but frankly right now I have better things to do.&lt;br /&gt;&lt;br /&gt;Another job I think would pay dividends would be to set up a secondary &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_45"&gt;DNS&lt;/span&gt; server at Manchester, it is probably quite straight forward but I think I will let the dust settle before attempting this one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-8859554080357226607?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/8859554080357226607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=8859554080357226607' title='23 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/8859554080357226607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/8859554080357226607'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/04/nagios-on-centos-grudging-union.html' title='Nagios on Centos - a grudging union'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_IoitLPp2rZ8/RhTg2MSmyrI/AAAAAAAAAEA/wdzBcNx59sI/s72-c/Dag.jpg' height='72' width='72'/><thr:total>23</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-8113364372721771964</id><published>2007-04-04T12:11:00.000Z</published><updated>2007-04-04T13:20:05.763Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP Excel Parser'/><title type='text'>Some Excellent Manipulation</title><content type='html'>An interesting little job came up yesterday which involved formatting data on an excel spreadsheet, we have some lists which have to look pretty but are edited frequently and we were having to spend a lot of time ensuring that these lists had a reliable and consistent format. Lots of ideas spring to mind for a job like this and the temptation is to go for yet another little database application but in this case it really felt like it would be overkill.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_IoitLPp2rZ8/RhOl98SmypI/AAAAAAAAADw/quwDJYDapV0/s1600-h/parse-this.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp2.blogger.com/_IoitLPp2rZ8/RhOl98SmypI/AAAAAAAAADw/quwDJYDapV0/s400/parse-this.gif" alt="" id="BLOGGER_PHOTO_ID_5049562090787228306" border="0" /&gt;&lt;/a&gt;The solution which appears to have legs is to create a rather &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;niffty&lt;/span&gt; excel parser using a couple of useful &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;PHP&lt;/span&gt; add&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt; ons&lt;/span&gt;. For those of you who &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;don't&lt;/span&gt; know what a parser is the &lt;a href="http://en.wikipedia.org/wiki/Parsing"&gt;definition on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;wikipedia&lt;/span&gt;&lt;/a&gt; is "the process of analyzing a sequence of &lt;a href="http://en.wikipedia.org/wiki/Token_%28parser%29" title="Token (parser)"&gt;tokens&lt;/a&gt; to determine its grammatical structure", in &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;lay mans&lt;/span&gt; terms think of it a s a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;digester&lt;/span&gt; of documents. You push one in one end and it reads it, digests it and magically &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;supplies&lt;/span&gt; a result, or in this case a completely reformatted spreadsheet. This will allow us to keep our data in a very simple &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;unformatted&lt;/span&gt; spreadsheet, but by running them through our new system, we can have a nicely formatted consistent look ready to print in a click. Its all summed up nicely by another of my random dips into &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;Google&lt;/span&gt; images, this time for the word "parse" see image right.&lt;br /&gt;&lt;br /&gt;So if anyone ever has a need of such a beast or, more likely, if in 6 months time I have forgotten what I did and need a reference, the 2 places to go are PEAR for the &lt;a href="http://pear.php.net/package/Spreadsheet_Excel_Writer"&gt;excel spreadsheet writer&lt;/a&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;add on&lt;/span&gt; and Source forge for the &lt;a href="http://sourceforge.net/projects/phpexcelreader"&gt;Excel Reader&lt;/a&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;add on&lt;/span&gt;. When these are installed and working individually there is no reason why they &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_12"&gt;cannot&lt;/span&gt; be used in the same &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;PHP&lt;/span&gt; script in a push-me pull-you sort of fashion. It only took a couple of hours to get a basic system running and you can even allow the user to &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_14"&gt;specify&lt;/span&gt; some parameters with their spreadsheet. So for example you pass a raw sheet of data, a title, a font and a relative font size and the parser running through the writer will apply &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_15"&gt;sizing's&lt;/span&gt; and fonts in defined ways to different columns of data, it will even specify margins and printing areas so the document is completely ready to roll.&lt;br /&gt;&lt;br /&gt;Keep tuning in for the definitive guide to installing &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;Nagios&lt;/span&gt; on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;Centos&lt;/span&gt; without 'going postal' later this week.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-8113364372721771964?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/8113364372721771964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=8113364372721771964' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/8113364372721771964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/8113364372721771964'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/04/some-excellent-manipulation.html' title='Some Excellent Manipulation'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_IoitLPp2rZ8/RhOl98SmypI/AAAAAAAAADw/quwDJYDapV0/s72-c/parse-this.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-3031782506293693336</id><published>2007-03-27T19:11:00.000Z</published><updated>2007-03-27T21:11:15.427Z</updated><title type='text'>Completing the VPN</title><content type='html'>For the past couple of years our &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;VPN&lt;/span&gt; has been somewhat of a work in progress, although it has been providing a useful service it has never been quite finished, one of those 95% projects. Well I am sure you will all be excited to learn that tomorrow it looks like we will finally be able to stand back and say that the network is one project that is 100% complete in every way (for now).&lt;br /&gt;&lt;br /&gt;All sites and key personnel are connected, our &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;co location&lt;/span&gt; facility is connected, we have finally finished putting all the head office connections onto the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Draytek&lt;/span&gt; 3300V and we have the RADIUS server running for mobile workers. Added to this we have upgraded the head office switches to managed &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Gigabit&lt;/span&gt; switches and tomorrow we should be activating the load balancing system so that if our leased line goes off the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;ADSL&lt;/span&gt; line will try to pick up the pieces and vice &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;versa&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;One of the major improvements has been the recently discovered need to reverse all the connections so that now both the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;co location&lt;/span&gt; router and the head office router are in charge of the connections to the remote locations. Quite why this never &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;occured&lt;/span&gt; to anyone before will remain a mystery but hey ho :o) Of course the big question was which way should the connection be configured to connect between Manchester and Head office now we have 2 very clever &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;VPN&lt;/span&gt; brains at each end, well the odd &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;coincidence&lt;/span&gt; is that you can set then up to dial each other! It is not &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;immediately&lt;/span&gt; obvious whether this will cause them to get in a knot at some point but we can always toss a coin and switch off one link if it does.&lt;br /&gt;&lt;br /&gt;The main visible improvement has been the state of our &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;comms&lt;/span&gt; cabinet or spaghetti junction as it was known, when we have disposed of our old &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;ADSL&lt;/span&gt; router and installed the super &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;VPN&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_14"&gt;pass through&lt;/span&gt; modem we should finally have a perfectly organised rack of kit with no &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;dangly&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;encoutrements&lt;/span&gt;  for once. I will take a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;piccie&lt;/span&gt; tomorrow to illustrate but &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_18"&gt;unfortunately&lt;/span&gt; I &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_19"&gt;don't&lt;/span&gt; have a before picture to give the true contrast.&lt;br /&gt;&lt;br /&gt;I watched an interesting &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;webinar&lt;/span&gt; last week about &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;steelhead&lt;/span&gt; WAN link optimisers from riverbed which can allow network applications to be run from the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;datacentre&lt;/span&gt; so maybe this could be the way forward for the network, phase 2 if you will. Just need to find a couple on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;ebay&lt;/span&gt; running at a bit of a discount as they are a bit expensive. Maybe terminal services will be a better bet but if anyone wants to bin a couple of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;steelheads&lt;/span&gt; do call :o)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-3031782506293693336?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/3031782506293693336/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=3031782506293693336' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/3031782506293693336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/3031782506293693336'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/03/completing-vpn.html' title='Completing the VPN'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-3085107341398895500</id><published>2007-03-20T17:22:00.000Z</published><updated>2007-03-20T17:45:46.418Z</updated><title type='text'>Extracting the 2950 from the dog house</title><content type='html'>Our upgrade to the Manchester server looked like being a bit of a damp squib this morning, after a good start with our new 2950 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Draytek&lt;/span&gt; firewall router dropping straight in as a replacement for the 2900 things were not turning out to be as reliable as I had hoped. Twice the previous day the link from my house to Manchester had locked up and then Nigel had a similar problem when his tunnel locked up, the outlook did not look good.&lt;br /&gt;&lt;br /&gt;However after having a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;pootle&lt;/span&gt; around on the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Draytek&lt;/span&gt; forums and not really coming up with a lot I had a moment of inspiration, the problem is that if one of the pub routers drops its connection its too stupid to realise and doesn't try to dial back into the main host every time. So the solution is surely to remove the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;responsibility&lt;/span&gt; for dialling from the slightly less clever routers and put the main super &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;efficient&lt;/span&gt; router in control. In a nutshell get Manchester to dial the pubs instead of the other way round, this way Manchester should know that a connection is dropped (using the power of its dedicated &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;VPN&lt;/span&gt; processor) and simply dial it up again. One other thing to be aware of if anyone is trying this is that the default timeout on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Draytek&lt;/span&gt; 2600's is a lowly 300 seconds and should be reduced to zero :o(&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_IoitLPp2rZ8/RgAc0U3T4DI/AAAAAAAAADc/3ckDRAHY824/s1600-h/damp+squib.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp2.blogger.com/_IoitLPp2rZ8/RgAc0U3T4DI/AAAAAAAAADc/3ckDRAHY824/s400/damp+squib.jpg" alt="" id="BLOGGER_PHOTO_ID_5044063267934429234" border="0" /&gt;&lt;/a&gt;So after reprogramming all of our routers and having a major rejig of the Manchester end of things it all looks a lot happier, of course its not as simple as checking they are all connected and I won't really know until a few days have passed. Tomorrow I will rejig our &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Nagios&lt;/span&gt; server to test these connections and I should start getting an idea of how good this configuration is going to be quite soon. As an aside when searching for 'Damp Squib' on &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;Google&lt;/span&gt; images this is what comes up, call me a fool but that dead cow don't look too damp to me  :o)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-3085107341398895500?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/3085107341398895500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=3085107341398895500' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/3085107341398895500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/3085107341398895500'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/03/extracting-2950-from-dog-house.html' title='Extracting the 2950 from the dog house'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_IoitLPp2rZ8/RgAc0U3T4DI/AAAAAAAAADc/3ckDRAHY824/s72-c/damp+squib.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-6601222099850729474</id><published>2007-03-15T16:41:00.000Z</published><updated>2007-03-15T17:23:46.363Z</updated><title type='text'>Instant gratification</title><content type='html'>No sooner had I posted about my declining traffic due to lack of blog fodder than I get 30 visitors in the same day, I am wondering whether this means that people have subscribed using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;RSS&lt;/span&gt; readers and therefore I can generate as much traffic as I want simply by bombarding you all with posts!&lt;br /&gt;&lt;br /&gt;Our 2950 arrived last week and was &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;immediately&lt;/span&gt; dispatched to Manchester where it has now been installed, its early days yet to get an idea of whether it is going to provider a better and more reliable service but so far so good. Although the 2950 is quite different to the 2900 it is replacing, and as such you cannot simply export the configuration and move it across, the setup screens are pretty similar so it was easy to copy the configuration page by page. We have about 20 &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;VPN&lt;/span&gt; tunnels hard coded into the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;config&lt;/span&gt; and one thing which would be great in a further revision of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Drayteks&lt;/span&gt; new operating system would be to duplicate an entry in the profiles page because it can be a bit of a drag, just in case anyone from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Draytek&lt;/span&gt; ever trip over this.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_IoitLPp2rZ8/RfmAnhTI31I/AAAAAAAAADE/VzIEaCTeUh4/s1600-h/m3100.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp1.blogger.com/_IoitLPp2rZ8/RfmAnhTI31I/AAAAAAAAADE/VzIEaCTeUh4/s400/m3100.jpg" alt="" id="BLOGGER_PHOTO_ID_5042202674259877714" border="0" /&gt;&lt;/a&gt;One other little happening which I found very interesting is that Google have created a little program for Pocket &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;PC's&lt;/span&gt; which runs Google maps. I must say that my &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;HTC&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;PDA&lt;/span&gt; is becoming more and more useful now that I can get my email, it is a phone, it syncs with my &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;Gcal&lt;/span&gt; over the air thanks to &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;goosync&lt;/span&gt; and now &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;Google&lt;/span&gt; maps as well! I feel quite spoilt.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_IoitLPp2rZ8/RfmAsxTI32I/AAAAAAAAADM/VY28nwSUFdI/s1600-h/iphone.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp2.blogger.com/_IoitLPp2rZ8/RfmAsxTI32I/AAAAAAAAADM/VY28nwSUFdI/s400/iphone.png" alt="" id="BLOGGER_PHOTO_ID_5042202764454190946" border="0" /&gt;&lt;/a&gt;With all this in mind I found it very interesting to note that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;HTC&lt;/span&gt; have got a new version of my favourite toy coming out. I would guess that they are &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_IoitLPp2rZ8/RfmAzxTI33I/AAAAAAAAADU/KE9o2MnzHSw/s1600-h/s710.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp2.blogger.com/_IoitLPp2rZ8/RfmAzxTI33I/AAAAAAAAADU/KE9o2MnzHSw/s400/s710.png" alt="" id="BLOGGER_PHOTO_ID_5042202884713275250" border="0" /&gt;&lt;/a&gt;watching the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;IPhone&lt;/span&gt; with some trepidation because although apple will have a lot of work to do to create something as functional as the  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;STC&lt;/span&gt; S710 I think we can all be confident that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;OSX&lt;/span&gt; on the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;IPhone&lt;/span&gt; will be slicker than Windows Mobile 6. So like the technology lemming that I am when the contracts on the phones are up for renewal I shall be torn between these two new and probably slightly &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_17"&gt;flaky&lt;/span&gt; but 'oh so cool' toys and once again spend the duration of the contract getting it just right in time for the next one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-6601222099850729474?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/6601222099850729474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=6601222099850729474' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/6601222099850729474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/6601222099850729474'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/03/instant-gratification.html' title='Instant gratification'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_IoitLPp2rZ8/RfmAnhTI31I/AAAAAAAAADE/VzIEaCTeUh4/s72-c/m3100.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-4151366080037373386</id><published>2007-03-13T16:38:00.000Z</published><updated>2007-03-13T17:33:24.116Z</updated><title type='text'>Google Apps cntd.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_IoitLPp2rZ8/RfbU998h9SI/AAAAAAAAAC0/cFRrDS7wRmc/s1600-h/traffic.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp0.blogger.com/_IoitLPp2rZ8/RfbU998h9SI/AAAAAAAAAC0/cFRrDS7wRmc/s400/traffic.png" alt="" id="BLOGGER_PHOTO_ID_5041450993953404194" border="0" /&gt;&lt;/a&gt;I have been progressing with lots of odds and ends this week and last which has meant no blogging, you can't force it after all. &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;Unfortunately&lt;/span&gt; this means my traffic has nosedived so its a good job I am not &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;dependant&lt;/span&gt; upon the income from my blog like Rob is ;o) (&lt;a href="http://beerbytes.blogspot.com/2007/02/rack-is-open-and-rob-earns-2-cents.html"&gt;see previous post&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Which illustrates a point I wanted to make - should anyone read this and think 'Hey that looks like a cool thing to do that blogging lark' the only advice I would give is to get a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;Google&lt;/span&gt; &lt;a href="http://analytics.google.com/"&gt;analytics&lt;/a&gt; account because otherwise is pretty dull. As you can see I have visitors from all over the world when I can actually work up a little blog fodder but otherwise I have had no feedback at all, so praise Google for keeping &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;beerbytes&lt;/span&gt; online!&lt;br /&gt;&lt;br /&gt;So I am sure you have all been waiting with baited breath for an update on the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;Google&lt;/span&gt; &lt;a href="http://calendar.google.com/"&gt;calendar&lt;/a&gt; situation, well we have had some movement - &lt;a href="http://www.spanningsync.com/"&gt;spanning sync&lt;/a&gt; is out of beta and ready for deployment. Hooray! I really must congratulate spanning sync for producing just about the only calendar syncing software which works, I have been running it now for about 4 weeks and whilst &lt;a href="http://www.syncmycal.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;syncmycal&lt;/span&gt;&lt;/a&gt; was merrily &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;trashingmycal&lt;/span&gt;, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;spanningsync&lt;/span&gt; has just worked which is all we ask.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_IoitLPp2rZ8/RfbcGt8h9TI/AAAAAAAAAC8/BAvc4g_AVcM/s1600-h/pda.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp3.blogger.com/_IoitLPp2rZ8/RfbcGt8h9TI/AAAAAAAAAC8/BAvc4g_AVcM/s400/pda.jpg" alt="" id="BLOGGER_PHOTO_ID_5041458840858654002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Another piece of software which also seems to be working is a little system called &lt;a href="http://www.goosync.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;goosync&lt;/span&gt;&lt;/a&gt; which is syncing my &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;Google&lt;/span&gt; calendar over-the-air with my &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;HTC&lt;/span&gt; Pocket PC. This means now that the Mac side of things is perfect, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;Ical&lt;/span&gt; Syncs my calendar both ways with Google, my &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;PDA&lt;/span&gt; does likewise and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;Ical&lt;/span&gt; also displays the rest of the offices calendars via .&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;ics&lt;/span&gt; addresses.&lt;br /&gt;&lt;br /&gt;This last point brings me onto a bit of a gripe with Google Apps. On paper Google apps is great but I have steadily been whittling away at the features which are &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_15"&gt;actually&lt;/span&gt; useful to an organisation like ours. 2 weeks ago I closed the premier account because it was not bringing anything to the table over and above a standard &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_16"&gt;Google&lt;/span&gt; apps for domains account and this afternoon I have had to walk away from even this because the calendaring system on these accounts does not allow private &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;Ical&lt;/span&gt; feeds! Big mistake - I have had to spend some time this afternoon manually setting up standard &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_18"&gt;Google&lt;/span&gt; accounts because  &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;syncmycal&lt;/span&gt; on the PC is not very happy with the Google apps calendaring feeds which seem to be slightly different from standard Google feeds  and  Outlook 2007 cannot plug into the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;Ical&lt;/span&gt; feeds on Google Apps.&lt;br /&gt;&lt;br /&gt;So I am short of only 2 things now, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;Goosync&lt;/span&gt; is struggling to work on our &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;Nokia&lt;/span&gt; 6233's but I am sure we can sort this and I need to get Outlook publishing to Google which &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;syncmycal&lt;/span&gt; can &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_24"&gt;allegedly&lt;/span&gt; do as long as your not on Apps.&lt;br /&gt;&lt;br /&gt;Other news, &lt;a href="http://www.joost.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;Joost&lt;/span&gt;&lt;/a&gt; is still very cool but the content has been suspiciously stagnant since I first went on possibly indicating an &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_26"&gt;Achilles&lt;/span&gt; heel, is it difficult to get the established networks to part with their premium content? And/or is it difficult to circulate new content around the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;Joost&lt;/span&gt; network? Maybe they need to take at look at the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;youtube&lt;/span&gt; way of doing things and get the public to contribute, I am not talking about the 240x180 endless rips of &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_29"&gt;Simpson's&lt;/span&gt; funnies but seriously good quality video from Jo public. something along the line of a bit torrent network where people can submit content recorded on proper video cameras to make good quality but amateur videos which will play &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_30"&gt;full screen&lt;/span&gt;. These could be vetted and categorised by &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;Joost&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_32"&gt;thereby&lt;/span&gt; avoiding the lawyers making a fat buck or two and allowing a huge variety of content to be available.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-4151366080037373386?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/4151366080037373386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=4151366080037373386' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/4151366080037373386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/4151366080037373386'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/03/google-apps-cntd.html' title='Google Apps cntd.'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_IoitLPp2rZ8/RfbU998h9SI/AAAAAAAAAC0/cFRrDS7wRmc/s72-c/traffic.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-5622426121795667852</id><published>2007-03-02T20:45:00.000Z</published><updated>2007-03-02T22:43:36.688Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='joost'/><title type='text'>I've seen the future - and it's Joost</title><content type='html'>I am going off topic, as in this has nothing to do with IT and business, but for anyone else who thinks that TV in the UK is a bit poor at present I have just seen the future and its truly exciting and scary in equal measure......&lt;br /&gt;&lt;br /&gt;A perfect Friday night, I got a pass from the missus for an hour at the local, they were in the middle of a barrel of Jennings Mountain Man which is nectar, and I get home to find out that I have been admitted to a rather exclusive club. I am a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Joost&lt;/span&gt; beta tester!&lt;br /&gt;&lt;br /&gt;Now for those of you who don't know (I can hardly remember quite how I ended up signing up for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Joost&lt;/span&gt; myself) but &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Joost&lt;/span&gt; is a new online TV station. Online TV is one of those technologies which has promised so much in the past but never lived up to the hype, I am sure we have all tried some of those poor real player feeds in the past and frankly if you have real network shares take my advice and sell sell sell! &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Joost&lt;/span&gt; is a quick download, I was genuinely very pleased to find a Mac version for a change, so I installed it on the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;ol&lt;/span&gt;' mac book, logged in and just watched half an episode of fifth gear full screen with no buffering. Seriously.&lt;br /&gt;&lt;br /&gt;Vicky Butler-Henderson never looked so good, although I suppose she never sat on my knee whilst presenting fifth gear before :o) I am such a nerd &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;sometimes&lt;/span&gt;...&lt;br /&gt;&lt;br /&gt;The choice of programming even in beta is far superior to HDTV even f the quality isn't, its full screen though, its on demand, they have programmes from national geographic, channel 5, MTV, I even heard tell of a Viacom deal yesterday and you can tell that the choice is going to be &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;truly&lt;/span&gt; staggering on an international scale. I cannot emphasise this enough, sign up now because in 6 months time your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;digi&lt;/span&gt; box is going to look pretty dull, and that is the scary part. I dislike TV, I like gardening, I am a frustrated smallholder (in that I haven't got one) and I think people should be &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;tilling&lt;/span&gt; the soil rather than vegging on the sofa and I quite like having an excuse to turn off the TV when nothing is on. In a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;Joost&lt;/span&gt; world there is always going to be something on you would like to watch, maybe land will become cheaper because all the smallholders will be watching &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Joost&lt;/span&gt; and then I can make my move.... sweet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-5622426121795667852?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/5622426121795667852/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=5622426121795667852' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/5622426121795667852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/5622426121795667852'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/03/ive-seen-future-and-its-joost.html' title='I&apos;ve seen the future - and it&apos;s Joost'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-5471373220728506631</id><published>2007-03-01T19:53:00.000Z</published><updated>2007-03-01T21:39:38.360Z</updated><title type='text'>Delving further into Google Apps</title><content type='html'>Last week I set up a Google apps account to investigate the potential for using it as a replacement for Microsoft Exchange, given that we only really rely on Exchange to share calendars. Today I finally got chance to properly look into the fixtures and fittings of Google apps and I must say that my initial impression is very positive.&lt;br /&gt;&lt;br /&gt;Although I had used Google Calendars before, and found the user experience to be a very positive one, especially for a browser based application, I had not really investigated the other aspects of the apps suite and that was the aim of this afternoon. Google apps is actually a very simple system and that is one of the things that appeals to me about it, the manual for exchange is about a foot thick and I would say that its a typical case of Microsoft over engineering. It is quite unfair in some ways to compare these 2 products because Exchange does lots of things that apps does not, however as a small office I would say Google is closer to fulfilling our requirement for information sharing.&lt;br /&gt;&lt;br /&gt;So to the details, there are only 3 elements of apps which really interest me at present and these are in order of importance, calendars, email and finally the personalised start page. Of course each of these elements have been available on an individual basis for sometime but the new apps for domains approach allows one person to administer these systems for an entire office. The first thing you have to do is provide the domain, it would have been possible to sign over our existing brunningandprice domain and then link back to the website and use Gmail as our primary email system but I am not quite ready to take a jump like that so I got a new one for a mighty £2 pa :o)&lt;br /&gt;&lt;br /&gt;One of the really nice features becomes apparent at this point, if you want to create user accounts for 20 odd people you can simply fill in an excel spreadsheet and Google will quite happily auto generate your user accounts. Easy. You can even set a global setting to ask all your new users to change their password when they first log on and preset their sharing options to allow everyone access to each other calendars. At this point if we were happy to use online systems the job is done, everyone has an account, email, calendar and even instant messaging.&lt;br /&gt;&lt;br /&gt;The next  thing I wanted to look at was the personalised start page,  everyone in our office almost without exception uses Google as their start page anyway so to  have the opportunity to add their calendar and email to this was quite  appealing. It turns out that this system is again very simple to use and I simply popped our logo on the top of the page and dropped in each users calendar, email preview, to-do list and even a link our internal applications. I think we will get compadre Rob to use a bit of his design magic on this page if the idea takes off.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So far so good, the task for tomorrow is to make a decision about how best to approach using the email, should we simply have one pop3 account or route the existing mail via Gmail, my initial reaction is no however Gmail is a rather nifty web mail system compared to our existing service... tempting. Also its time to start throwing some larger calendars up and seeing what happens to performance, I'll keep you posted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-5471373220728506631?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/5471373220728506631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=5471373220728506631' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/5471373220728506631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/5471373220728506631'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/03/delving-further-into-google-apps.html' title='Delving further into Google Apps'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-9135482325389312065</id><published>2007-02-28T17:02:00.000Z</published><updated>2007-02-28T17:22:43.931Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='backup'/><category scheme='http://www.blogger.com/atom/ns#' term='rsync'/><category scheme='http://www.blogger.com/atom/ns#' term='osx'/><category scheme='http://www.blogger.com/atom/ns#' term='do something when'/><category scheme='http://www.blogger.com/atom/ns#' term='flash mx asfunction problems'/><title type='text'>A really slick backup idea!</title><content type='html'>And it wasn't even mine.....&lt;br /&gt;&lt;br /&gt;Its another not very exciting post about backup, I know its not the most fun subject even for fellow nerds but its a fact that backup is very important (see the last but 1 post). One issue we have as a company with distributed sites and therefore computers is trying to make sure we get copies of the data from &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;harassed&lt;/span&gt; managers. Its no use &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;giving&lt;/span&gt; them a cake of &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;Cd's&lt;/span&gt; and a printout which requires them to do complicated computing tasks, it simply doesn't work, so you have to think of something really slick and this is what our main mac man Nigel has done.&lt;br /&gt;&lt;br /&gt;At the same time that I was playing with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;rsync&lt;/span&gt; to backup my &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;Manchester&lt;/span&gt; installation over the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;VPN&lt;/span&gt; Nigel was using the same program, which comes as standard on the Mac, to do some simple backup tasks on his computer. Having both recently installed a nice &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;RSS&lt;/span&gt; reader called Vienna we have access to a useful little blog called Mac &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;OSX&lt;/span&gt; Hints which pretty much does what it says on the tin. One hint which Nigel picked up on was a rather nifty little application called "Do Something When" which very simply runs a script when a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;USB&lt;/span&gt; Flash drive is &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;plugged&lt;/span&gt; into a Mac. Using the power of his brain Nigel that put these 2 ideas together &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;resulting&lt;/span&gt; in "A really slick backup idea", luckily Nigel doesn't blog so I get to write all about it and reflect in the glory of the idea without doing a thing - sweet :o)&lt;br /&gt;&lt;br /&gt;So after a small amount of programming, setting up you Flash drive and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;rsync&lt;/span&gt; script, every time you plug the Flash drive into the Mac it automatically does an incremental backup of your predefined files! This will allow us to present our managers with a backup solution which is so slick they can't fail to use it.....&lt;br /&gt;&lt;br /&gt;The rest of this week has been programming for me, a mix of finishing our new job applicant database and moving our exisitng data into the new database, from Microsoft SQL server to MySQL which has been a bit painful. A thing to watch out for if you are trying to use DTS to move data between these databases is that text data will not copy across using an ODBC connection and I couldn't tell you why. Varchar data will move and I have checked its not a collation issue, it just won't go, answers on a postcard please. The solution I used in the end was moving data to excel spreadsheets and then pushing the data into MySQL from there, not very elegant really.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-9135482325389312065?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/9135482325389312065/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=9135482325389312065' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/9135482325389312065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/9135482325389312065'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/02/really-slick-backup-idea.html' title='A really slick backup idea!'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-2175095232006809966</id><published>2007-02-26T21:36:00.000Z</published><updated>2007-02-26T22:32:00.091Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Draytek 2950'/><title type='text'>Improving the 'Manchester connection'</title><content type='html'>Sounds a bit like a Tom Clancy novel doesn't it - "The Manchester Connection" - in reality of course it's nothing very classy (if Tom Clancy novels can be described as classy) it is a slot in a rack in Manchester which is currently occupied by one of our little &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;VPN&lt;/span&gt;&lt;/span&gt; firewalls.&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;When we first embarked upon extending the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;VPN&lt;/span&gt;&lt;/span&gt; to Manchester it was a bit of an experiment and as such we didn't &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;necessarily&lt;/span&gt; want to go mad buying expensive hardware for the first phase. However now that we have approaching 20 connections to this part of the network and are beginning to use the applications and data store there more and more, we are in need of a bit more horse power.&lt;br /&gt;&lt;br /&gt;One thing we have noticed is that when the total number of connections on our current &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Draytek&lt;/span&gt;&lt;/span&gt; 2900 exceeds the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;recommended&lt;/span&gt; 16, although it will quite happily chug along for days without a problem every now and again if a connection is dropped it can fail to automatically pick up again. The only solution is to manually drop the connection and then everyone is happy again. Of course when you are relying on this connection to serve up applications it is not acceptable to have this &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;occasional&lt;/span&gt; glitch and the resulting lockout so its time for an upgrade. What we were intending to use was a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Draytek&lt;/span&gt;&lt;/span&gt; 330V as these units have capacity for 200 &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;simultaneous&lt;/span&gt; connections and a dedicated &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;VPN&lt;/span&gt;&lt;/span&gt; processor and was the choice for our main &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;VPN&lt;/span&gt;&lt;/span&gt; hub, however it turns out that &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Draytek&lt;/span&gt;&lt;/span&gt; have a new toy out - the &lt;a href="http://www.draytek.co.uk/products/vigor2950.html"&gt;2950&lt;/a&gt; Note especially the cutting edge case design which is such a hall mark of any &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Drayteck&lt;/span&gt; product, the designers obviously frightened themselves with the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;racy&lt;/span&gt; blue case of the 330V and retreated to their comfort zones with the latest offering! Its a good job they work so well.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_IoitLPp2rZ8/ReNfBbum7_I/AAAAAAAAACo/7myHN_dZM7M/s1600-h/2950.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_IoitLPp2rZ8/ReNfBbum7_I/AAAAAAAAACo/7myHN_dZM7M/s400/2950.jpg" alt="" id="BLOGGER_PHOTO_ID_5035973286558101490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Click &lt;a href="http://www.draytek.co.uk/products/vigor2950.html"&gt;here&lt;/a&gt; for a full spec and &lt;a href="http://www.draytek.com/demo/Vigor2950/index.htm"&gt;here&lt;/a&gt; for a link to their control panel demonstration. We have been given a delivery date for Friday so if its on time I should be able to relate the tale of the setup on the Friday afternoon post :o)&lt;br /&gt;&lt;br /&gt;Other news is that on the Google calendaring and sync front so far the Mac system - spanning sync - seems to be fine. However the PC solution &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;syncmycal&lt;/span&gt;&lt;/span&gt; is having some minor emotional problems, so far the most impressive thing is the prompt service from their technical support department. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Nuff&lt;/span&gt;&lt;/span&gt; said.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-2175095232006809966?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/2175095232006809966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=2175095232006809966' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/2175095232006809966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/2175095232006809966'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/02/improving-manchester-connection.html' title='Improving the &apos;Manchester connection&apos;'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_IoitLPp2rZ8/ReNfBbum7_I/AAAAAAAAACo/7myHN_dZM7M/s72-c/2950.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-8951934085533453531</id><published>2007-02-23T22:56:00.000Z</published><updated>2007-02-24T09:54:15.635Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='windows share'/><category scheme='http://www.blogger.com/atom/ns#' term='backup'/><category scheme='http://www.blogger.com/atom/ns#' term='SMB'/><category scheme='http://www.blogger.com/atom/ns#' term='cron'/><title type='text'>Mounting a network drive and dabbling in cron jobs</title><content type='html'>Now before you all think I have gone crazy and started a sideline in email scams I must explain some background before things will become clear.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_IoitLPp2rZ8/Rd96aXCKFxI/AAAAAAAAACc/cZJSWH_8sG4/s1600-h/HM.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp0.blogger.com/_IoitLPp2rZ8/Rd96aXCKFxI/AAAAAAAAACc/cZJSWH_8sG4/s400/HM.jpg" alt="" id="BLOGGER_PHOTO_ID_5034877501701756690" border="0" /&gt;&lt;/a&gt;Our new all singing and dancing application we are building in Manchester is starting to become useful and inevitably when something becomes useful people start actually using it to do important work. Also when people start using software they trust their friendly IT manager to look after all their useful information in a responsible manner so that if anything bad happened their precious information will be preserved. Imagine if you will a collection of harvest mice with a big stash of blackberries, if the stash of berries is squished the IT manager has an opportunity to become a hero by unsquishing them or alternatively slightly fired :o)&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;(The operations Director was very angry when she found out all the data was lost)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;So the solution for guarding our 'blackberries' is to duplicate them and put them in several places at the same time, we have a clever piece of software in head office which does this - when it can be bothered (thank you to the creators of retrospect). However our new system is being created on a Linux server and as such has no access to our main backup software so we have had to create our own. Its pretty simple really, every night copy our 'pile of blackberries' from this place to this other place, as I have bored you already with the story of replicating our database we are simply concerned here with files. The thing is that there would be no point in copying our files from one part of the Linux server to another so it needs to be sent to head office, this means going from Linux to windows and this is where the fun is.&lt;br /&gt;&lt;br /&gt;And so to a brief instruction on mounting a windows network share:&lt;br /&gt;1. Stretch - its important.&lt;br /&gt;2. Create a new windows account on your domain.&lt;br /&gt;3. Create a folder on your windows server and allow access to it for your new user&lt;br /&gt;4. Try connecting to it using the following command:&lt;br /&gt;&lt;br /&gt;mount.cifs //&lt;span style="font-style: italic;"&gt;servername.domain/share&lt;/span&gt; /mnt/ -o user=&lt;span style="font-style: italic;"&gt;user,&lt;/span&gt;password=&lt;span style="font-style: italic;"&gt;password&lt;/span&gt;,domain=&lt;span style="font-style: italic;"&gt;domain&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Don't try smb, mount, mount.smb or any of that because it doesn't work, I have no idea why - its probably very simple but 2 hours of banging my head against it could not get it going!&lt;br /&gt;&lt;br /&gt;If the preceding command works edit your /etc/fstab file and simply copy and paste the command into it. That way every time you restart your Linux machine it will automatically make your windows share available to you in /mnt/ magic!&lt;br /&gt;&lt;br /&gt;So next to the cron job:&lt;br /&gt;For those of you who do not know, cron is a simple program which runs another program at a certain time on a certain day so you don't have to remember to. A cron job is a preconfigured task which cron will perform at a specified time and date, told you I could explain.&lt;br /&gt;&lt;br /&gt;In our scenario we have a very simple command to be run cp -r "/home/store" "/mnt/" so the first step is to simply run it at the command line and see if it works. If it does you copy and paste the line into the /etc/crontab file with a preceding '0 1 * * *' which it turns out translates 'to please run this every night at 1am' simple really.&lt;br /&gt;&lt;br /&gt;I hope you find this ramble as useful as I would have done if I had found it 2 hours ago :o)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-8951934085533453531?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/8951934085533453531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=8951934085533453531' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/8951934085533453531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/8951934085533453531'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/02/mounting-network-drive-and-dabbling-in.html' title='Mounting a network drive and dabbling in cron jobs'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_IoitLPp2rZ8/Rd96aXCKFxI/AAAAAAAAACc/cZJSWH_8sG4/s72-c/HM.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-3788965307476606387</id><published>2007-02-23T12:19:00.000Z</published><updated>2007-02-23T12:37:50.234Z</updated><title type='text'>The Ultimate Calendaring System?</title><content type='html'>First job this morning was to spec out and test the idea outlined yesterday and I have even made a pretty picture, I might print it out and put it on the fridge at home :o)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_IoitLPp2rZ8/Rd7gB3CKFwI/AAAAAAAAACQ/xrTm5icNpi0/s1600-h/Eaton+Mess.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_IoitLPp2rZ8/Rd7gB3CKFwI/AAAAAAAAACQ/xrTm5icNpi0/s400/Eaton+Mess.png" alt="" id="BLOGGER_PHOTO_ID_5034707756004284162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I have had Spanning Sync on the Mac for a couple of weeks now and it seems fine, ditto for sync &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;mycal&lt;/span&gt; on the PC and at £12 per license its very reasonable but they have been linked into separate calendars. This morning I have linked up all of these systems via my Google calendar and so far they have not started fighting. I think the key must be to accept that the Google calendar has to wear the trousers and although its 2 way sync set both of the client tools to defer to Google if there is a dispute. The next step in testing this system will be to actually set up one of the new Google domain accounts, I will keep you in the loop :o)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_IoitLPp2rZ8/Rd7e4nCKFvI/AAAAAAAAACA/8yU4RSWejos/s1600-h/OICW.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp0.blogger.com/_IoitLPp2rZ8/Rd7e4nCKFvI/AAAAAAAAACA/8yU4RSWejos/s400/OICW.jpg" alt="" id="BLOGGER_PHOTO_ID_5034706497578866418" border="0" /&gt;&lt;/a&gt;BTW in writing this blog I thought I might put in a little picture to illustrate the fact that this Calendaring strategy might be 'all things to all men', when I searched for this phrase another quirky burp of Google images threw up a picture of a squaddie with an &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;enormous&lt;/span&gt; gun(see right). Not quite what I had in mind but he &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;definitely&lt;/span&gt; does seem to have the equivalent of my Calendaring strategy tucked in his sweaty pit doesn't he :o)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-3788965307476606387?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/3788965307476606387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=3788965307476606387' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/3788965307476606387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/3788965307476606387'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/02/ultimate-calendaring-system.html' title='The Ultimate Calendaring System?'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_IoitLPp2rZ8/Rd7gB3CKFwI/AAAAAAAAACQ/xrTm5icNpi0/s72-c/Eaton+Mess.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-502054712333367697</id><published>2007-02-22T20:11:00.000Z</published><updated>2007-02-22T21:49:52.515Z</updated><title type='text'>Groupware Eaton Mess?</title><content type='html'>For those of you who &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;don't&lt;/span&gt; know it Eaton mess is a kind of pudding, I know this because even though I am a techie I work for a pub company and you pick up nuggets like that. Eaton mess is not just any kind of pudding though, its the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;Rio&lt;/span&gt; carnival of puddings, the fact is it shouldn't really work, its just a pile of stuff that just happens to be delicious.&lt;br /&gt;&lt;br /&gt;I was reading the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;write ups&lt;/span&gt; this morning about &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Google's&lt;/span&gt; paid for 'sort of office' suite and was quite impressed but it has taken me all day to actually digest the possible opportunity which this service might be offering. I had been looking before at using just the calendar aspect but the App suite brings a few more things to the table for a quite reasonable £25 per year. As a suite of tools the offering is quite basic but there is nothing wrong with that, and the simple fact that you have to be online to do anything is quite limiting. For 360 days of the year it would not be a problem but I can just imaging the other 5 could be very frustrating indeed. That said there are 3 aspects of the suite I really like, namely the Calendars, Gmail and the Personalised Home Page the question is how to make best use of them and this is where it turns suddenly into Eaton Mess. So could a useful Groupware system be shackled together using Google Apps and some supporting software to create a masterpiece or just a big pile of stuff that doesn't quite gel.&lt;br /&gt;&lt;br /&gt;Our problem as described before is the requirement to support Mac's and &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;PCs&lt;/span&gt; and a variety of software applications with 2 way &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;synchronisation&lt;/span&gt; for all applications. Or to put it another way is it feasible to replace Exchange with Google?&lt;br /&gt;&lt;br /&gt;The requirement:&lt;br /&gt;Shared Calendars, Personal Contacts, Web Mail, POP Mail and Mobile Access&lt;br /&gt;&lt;br /&gt;Platforms:&lt;br /&gt;Outlook 2007, Entourage, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Ical&lt;/span&gt;, Apple Mail, Pocket Windows 5, Apple Address Book&lt;br /&gt;&lt;br /&gt;I have alluded before to a couple of pieces of sync software that look promising, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;syncmycal&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;spanningsync&lt;/span&gt;, these are both coming along and although I am nervous about 3rd party &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;plugins&lt;/span&gt; getting in the mix if, just if, they did get finished and worked well they could make all the difference. I will put together a diagram to illustrate but I would say that off the top of my head all that is missing is a way of syncing contacts with Gmail.&lt;br /&gt;&lt;br /&gt;One thing which would be great about this whole house of cards would be that looking forward we could actually think about binning outlook and any other email/calendar clients thereby making life very simple. I love the idea of opening a web browser and having my mail and calendar &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;immediately&lt;/span&gt; available to me, it was in fact a part of the initial idea for our central management system but it didn't seem worth while reinventing the wheel so to speak.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-502054712333367697?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/502054712333367697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=502054712333367697' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/502054712333367697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/502054712333367697'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/02/groupware-eaton-mess.html' title='Groupware Eaton Mess?'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-6556108918320705175</id><published>2007-02-19T22:24:00.000Z</published><updated>2007-02-19T22:49:06.032Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='pear vcard module'/><category scheme='http://www.blogger.com/atom/ns#' term='flash mx asfunction problems'/><title type='text'>Why I like SQL and a matter of AS Dysfunction</title><content type='html'>One of the little projects I an engaged in at the moment is quite a nice little program to store facts, its the latest chapter in the drive to put information traditionally stored in a managers spreadsheet horde onto a central system which anybody can access.&lt;br /&gt;&lt;br /&gt;The program is very simple, a set of pubs and a set of facts but one aspect which was quite intriguing was how to efficiently add an address for an entry without ending up with a huge database of contact details which would require constant &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;maintenance&lt;/span&gt;, we have enough of those already! In due course a solution presented itself, why not simply use one of those other databases and what better than the accounts system because frankly businesses like to get paid and if there is one set of contact details which they make sure to get updated if anything changes its accounts.  And this is why I like &lt;a href="http://en.wikipedia.org/wiki/SQL"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;SQL&lt;/span&gt;,&lt;/a&gt; the new 'fact' system is in &lt;a href="http://www.mysql.com"&gt;MySQL&lt;/a&gt; the accounts system in &lt;a href="http://www.microsoft.com/sql/"&gt;Microsoft &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;SQL&lt;/span&gt;&lt;/a&gt; but thanks to the gift of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;SQL&lt;/span&gt; and &lt;a href="http://www.php.net"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;PHP&lt;/span&gt;&lt;/a&gt; all of this information can be glued together in a really elegant little system.&lt;br /&gt;&lt;br /&gt;The next step with this program is to then load this contact information into a &lt;a href="http://en.wikipedia.org/wiki/VCard"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;VCard&lt;/span&gt;&lt;/a&gt;, we may be writing lots of our own software but you have to have an eye on standards and for contact information the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;VCard&lt;/span&gt; is it. Thankfully a nice group of people have written a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;PHP&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;addon&lt;/span&gt; for creating &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;VCards&lt;/span&gt; via the &lt;a href="http://pear.php.net/"&gt;PEAR&lt;/a&gt; system and if you know what I am talking about and fancy a laugh pop into the documentation section for the &lt;a href="http://pear.php.net/package/Contact_Vcard_Build"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;VCard&lt;/span&gt; PEAR module&lt;/a&gt; :o) I'll tell you how I get on with this part tomorrow.&lt;br /&gt;&lt;br /&gt;One other little note for today was a confusing feature of the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;asfunction&lt;/span&gt; in Flash, if you are ever programming in Flash and cannot get a function to work using &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;asfunction&lt;/span&gt; check the target level, it does not reference the root level but whichever level the text area is in which is calling it. Bet you'll all sleep better now :o)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-6556108918320705175?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/6556108918320705175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=6556108918320705175' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/6556108918320705175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/6556108918320705175'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/02/why-i-like-sql-and-matter-of-as.html' title='Why I like SQL and a matter of AS Dysfunction'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-8799578210044574190</id><published>2007-02-16T21:28:00.000Z</published><updated>2007-02-23T23:39:44.478Z</updated><title type='text'>The rack is open and Rob earns 2 cents</title><content type='html'>When I first started musing upon life and aspects of IT on my little blog it was really a test, sorry to break the news but there you are. The theory was that the blog would be a valuable way of getting interesting and topical content onto our company website, explaining to anyone who cared what we do in the IT department and dispensing some useful &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;nuggets&lt;/span&gt; of information to anyone having trouble with things we find solutions to. Its what makes the web so interesting, whatever mess you have got into you can almost guarantee someone has been there before and was good enough to write about it so other people could dig themselves out of the mire slightly quicker.&lt;br /&gt;&lt;br /&gt;The question we had to answer was, is it possible to blog on a regular basis, say something interesting and informative and would it be worth linking into the site. So here we are 2 months later, still posting, still enjoying it and very pleased with the amount of traffic on my blog, at present only about 20 a day but its encouraging to know people are finding it and we have decided to link it onto my profile on the company website :o)&lt;br /&gt;&lt;br /&gt;Having extolled the virtues of regular blogging as a tonic for the soul our revered communications director has decided to join in and I would like to link you at this point to his blog - &lt;a href="http://fromthebin.blogspot.com/"&gt;a view from the bin&lt;/a&gt;. As our wine aficionado this of course relates to his tales from the wine bin in the same way that mine relates to the server rack, as opposed to the instrument of medieval torture... although...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_IoitLPp2rZ8/RdYpKnCKFsI/AAAAAAAAABg/AERZlXz-IiE/s1600-h/sweetblackjackchewpack2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp0.blogger.com/_IoitLPp2rZ8/RdYpKnCKFsI/AAAAAAAAABg/AERZlXz-IiE/s400/sweetblackjackchewpack2.jpg" alt="" id="BLOGGER_PHOTO_ID_5032254895886571202" border="0" /&gt;&lt;/a&gt;And moving onto our other company blog the big news from &lt;a href="http://www.bugeyed.me.uk/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;compadre&lt;/span&gt; Rob&lt;/a&gt; is that he has sold out and plugged &lt;a href="https://www.google.com/adsense"&gt;Google &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;AdSense&lt;/span&gt;&lt;/a&gt; into his site, obviously a worth exercise as in the first week it has earned him a truly mighty 2 cents, or 1p after tax.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_IoitLPp2rZ8/RdYpVnCKFtI/AAAAAAAAABo/YLV7Dv8as8U/s1600-h/sweetfruitsaladchewpack2.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp0.blogger.com/_IoitLPp2rZ8/RdYpVnCKFtI/AAAAAAAAABo/YLV7Dv8as8U/s400/sweetfruitsaladchewpack2.jpg" alt="" id="BLOGGER_PHOTO_ID_5032255084865132242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This of course now leaves Rob in a terrible quandary as he will&lt;br /&gt;have to choose between a black jack or a fruit salad.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-8799578210044574190?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/8799578210044574190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=8799578210044574190' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/8799578210044574190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/8799578210044574190'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/02/rack-is-open-and-rob-earns-2-cents.html' title='The rack is open and Rob earns 2 cents'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_IoitLPp2rZ8/RdYpKnCKFsI/AAAAAAAAABg/AERZlXz-IiE/s72-c/sweetblackjackchewpack2.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-7096901979268446041</id><published>2007-02-15T20:20:00.000Z</published><updated>2007-02-15T21:05:42.485Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ical'/><category scheme='http://www.blogger.com/atom/ns#' term='Webdav'/><title type='text'>Shared calendars - how hard can it be?</title><content type='html'>Not been very much of note going on this week, mostly moving some of my little applications over to our &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;Mancunian&lt;/span&gt; installation. I have now moved over our R&amp;amp;R invoicing system, the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;SMS&lt;/span&gt; system and our Pub facts, these are all little Flash applications now running on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;AMF&lt;/span&gt; and served up over the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;VPN&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;One big movement this afternoon has been with our company calendars, for the last few days we have been evaluating &lt;a href="http://office.microsoft.com/en-us/products/default.aspx"&gt;Outlook 2007&lt;/a&gt; to see where its new &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Ical&lt;/span&gt; support is worth us spending the money for an upgrade on our Head Office &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;PC's&lt;/span&gt;. &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Compadre&lt;/span&gt; Rob has been less than impressed - &lt;a href="http://bugeyedchron.blogspot.com"&gt;click here&lt;/a&gt; for his frank evaluation. Officially we have a support contract but according to &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;Microsoft&lt;/span&gt; our Small Business Server license does not entitle us to an outlook upgrade until exchange 2007 is out which &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;conveniently&lt;/span&gt; might be after the contract runs out. If anyone ever offers you a &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;Microsoft&lt;/span&gt; support contract tell them to pound it, if they brought the software out on time it would be fine but they &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;don't&lt;/span&gt; and its more trouble than its worth.&lt;br /&gt;&lt;br /&gt;Enough of that or &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;I'll&lt;/span&gt; get all angry.&lt;br /&gt;&lt;br /&gt;So we have been using exchange for about 18 months now and it is less than impressive when you have a mixed network as support on the Mac's is poor so we are &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_12"&gt;desperately&lt;/span&gt; trying to extract ourselves. Moving the email back to POP3 is easy but we still need to be able to share calendars. One thing we have been looking at quite seriously is using &lt;a href="http://calendar.google.com"&gt;Google calendars&lt;/a&gt; but in order to have your calendar offline you need 3rd party software in the shape of &lt;a href="http://spanningsync.com/"&gt;Spanning Sync&lt;/a&gt; on the Mac or &lt;a href="http://www.syncmycal.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;Syncmycal&lt;/span&gt;&lt;/a&gt; on the PC, both of which seem to work but we have tried so many other pieces of calendar syncing software in the past that I would be very nervous of &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_14"&gt;recommending&lt;/span&gt; it.&lt;br /&gt;&lt;br /&gt;So given the new &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;Ical&lt;/span&gt; support in Outlook we are looking at the simple option of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;Webdav&lt;/span&gt; and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;Ical&lt;/span&gt;/Outlook. I have dusted off my old Pentium 3 based server called &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;Chubba&lt;/span&gt; and given it an install of fedora core 5, setting up &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;webdav&lt;/span&gt; on Apache is easy thanks to this &lt;a href="http://fedoranews.org/mediawiki/index.php/Building_a_Simple_Calendar_Server_with_Fedora_and_WebDAV"&gt;rather &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;niffty&lt;/span&gt; tutorial&lt;/a&gt;. The only thing we need to sort out now is &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;whether&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;Ical&lt;/span&gt; can cope with 12 &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_23"&gt;calendars&lt;/span&gt;, it used to cope with about 10 but &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_24"&gt;ironically&lt;/span&gt; it was an upgrade to Tiger which caused major problems. Seeing as all our Mac's are now &lt;a href="http://www.intel.com/cd/products/services/emea/eng/desktop/processors/300131.htm?cid=emea:ggl%7Cc2d_uk_brand%7Ck6D85%7Cs"&gt;core 2&lt;/a&gt; I have high hopes that they will have sufficient &lt;a href="http://en.wikipedia.org/wiki/Cojones"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;cojones&lt;/span&gt;&lt;/a&gt; to keep everything synced up. If they struggle it will have to be &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_26"&gt;Google&lt;/span&gt; calendars and &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_27"&gt;plug in&lt;/span&gt; hell! No offence Bill but exchange is going and &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_28"&gt;that's&lt;/span&gt; that.&lt;br /&gt;&lt;br /&gt;Still loving the Mac by the way, must have quicksilver, Neo office and synegy if you have another machine though - again I will point you to the bug for a good post on stuff you need on your Mac.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-7096901979268446041?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/7096901979268446041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=7096901979268446041' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/7096901979268446041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/7096901979268446041'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/02/not-been-very-much-of-note-going-on.html' title='Shared calendars - how hard can it be?'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-8954417207410910031</id><published>2007-02-12T20:29:00.000Z</published><updated>2007-02-12T21:30:16.505Z</updated><title type='text'>Return of the MAC</title><content type='html'>Just so that my newly expanded international audience doesn't get too worried that I might inflict some off key &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;UK&lt;/span&gt; R&amp;B &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;schmoltz&lt;/span&gt; on them the MAC I am referring to is not Mark Morrison but in fact a shiny new MAC Book. Although in fact its not shiny because its a rather &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;nifty&lt;/span&gt; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;Matt&lt;/span&gt; black, it's just new.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_IoitLPp2rZ8/RdDbQXCKFrI/AAAAAAAAABQ/FU8FzmQy-i4/s1600-h/1461941.main.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp1.blogger.com/_IoitLPp2rZ8/RdDbQXCKFrI/AAAAAAAAABQ/FU8FzmQy-i4/s400/1461941.main.jpg" alt="" id="BLOGGER_PHOTO_ID_5030761857880299186" border="0" /&gt;&lt;/a&gt;Gotta love Google Images - turns out this guy is called Mark Morrison too :o)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(Can I just reiterate this is not a picture of me - he's called Mark Morrison and I don't know him, its funny and if you don't know why Google Mark Morrison the singer)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Firstly I must say hello to the international audience I have alluded to, thanks to links from my &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;com padre&lt;/span&gt; Rob at &lt;a href="http://www.bugeyed.me.uk/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;bugeyedchron&lt;/span&gt;&lt;/a&gt;, and his rather popular brother &lt;a href="http://www.ts0.com/"&gt;Thom&lt;/a&gt;, this humble little blog has now been visited by people in all kinds of places including Australia, Singapore, Mexico, Norway and China. I hope you have been informed/entertained and please be assured each new blob on my &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;Google&lt;/span&gt; analytics Geo Map makes me very happy :o)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_IoitLPp2rZ8/RdDTeHCKFqI/AAAAAAAAABI/S9FLqAbPwmY/s1600-h/Picture+2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_IoitLPp2rZ8/RdDTeHCKFqI/AAAAAAAAABI/S9FLqAbPwmY/s400/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5030753298010478242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;So to the Mac...&lt;br /&gt;Normally I am a Windows person it must be said, I don't like Microsoft particularly but I am a developer, I write programs and web apps, mostly cross platform actually, but I like an easy life, I like a choice of development tools and I like things  I can tinker with. I suppose you could say I like &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;PC's&lt;/span&gt; but that does not mean Windows. In fact I would love to use Linux more often but it just not quite there yet on the &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;desktop&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;I have had a hankering for a Core 2 Duo machine for some time as my Dell laptop is getting a bit long in the tooth but I have a feeling that a Vista based laptop could be a bit lacking in the trouser department as &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;XP&lt;/span&gt; does not run that quickly and newer laptops do not have that much more horse power. I almost went for a desktop but the opportunity to swap out my &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Ibook&lt;/span&gt; presented itself and I have been really very impressed by the new Mac books so I thought - "twist my arm I'll have one". I have only had it a day but it has &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;definitely&lt;/span&gt; impressed far more than the original &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;Ibook&lt;/span&gt; did, here are a few Plus points:&lt;br /&gt;&lt;br /&gt;Seems nice and quick, a good step up from what was already a quick machine&lt;br /&gt;Much better value for money, &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;Ibook&lt;/span&gt; was expensive compared to the PC competition, this seems good value&lt;br /&gt;love the inbuilt &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;Isight&lt;/span&gt;, great quality, very &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_15"&gt;convenient&lt;/span&gt; for &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_16"&gt;Skype&lt;/span&gt;&lt;br /&gt;Screen is the best I have seen on a laptop&lt;br /&gt;Still like the CD drive, its a great piece of design&lt;br /&gt;The new magnetic power connector is brilliant, probably the most vulnerable part of a laptop is instantly rendered much more robust,&lt;br /&gt;Lovely tactile keyboard.&lt;br /&gt;&lt;br /&gt;What more could you ask for in a laptop? &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_17"&gt;Frankly&lt;/span&gt; not much, I suppose you would think me ungrateful if I said outlook and a maximise button :o) , throw in &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_18"&gt;Half life&lt;/span&gt; and I would never go back!&lt;br /&gt;&lt;br /&gt;Seriously though, within 2 hours I had &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_19"&gt;FireFox&lt;/span&gt;, &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_20"&gt;Thunder bird&lt;/span&gt;, Open Office and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;Skype&lt;/span&gt; on it and I began to feel quite at home, its almost unfortunate that my Flash Pro license is PC only because I would move my license if I had the option.&lt;br /&gt;&lt;br /&gt;The only dark cloud in my otherwise seamless experience was that MySQL Maestro does not have a Mac version so I am having to use Cocoa, its &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_22"&gt;OK&lt;/span&gt; but just the sort of &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_23"&gt;compromise&lt;/span&gt; which gets on my nerves. I am keeping an eye on Parallels and crossover just in case they solve this annoying aspect of running a mac.&lt;br /&gt;&lt;br /&gt;Will keep you posted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-8954417207410910031?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/8954417207410910031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=8954417207410910031' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/8954417207410910031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/8954417207410910031'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/02/return-of-mac.html' title='Return of the MAC'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_IoitLPp2rZ8/RdDbQXCKFrI/AAAAAAAAABQ/FU8FzmQy-i4/s72-c/1461941.main.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-7868278220187532947</id><published>2007-02-08T12:32:00.000Z</published><updated>2007-02-04T22:54:07.988Z</updated><title type='text'>Hunting and killing orphaned processes</title><content type='html'>I shall await the comments from emotional teenagers with interest, I have just spent the last 30 minutes wondering why I could not restore a SQL server database which had had some problems.  It turned out the culprit was pesky orphaned processes, so in true Elma Fudd style I went hunting them and brutally slaughtered any I found. (If it wasn't for the fact that Warner Bros would probably sue my arse off I would have put a jaunty picture of Elma in at this point but you will just have to imagine over to the right there is Elma complete with deer stalker and double barrelled shotgun)&lt;br /&gt;&lt;br /&gt;So you want to do something on SQL and its telling you you cannot because the database is in use, first ring round the office and make doubly sure no-one is on it. Next use query profiler to examine current connections but don't expect to see every process in the list, it will allow you to see active connections though and you might find someone on there who didn't realise it :o)&lt;br /&gt;&lt;br /&gt;Take a deep breath and open query analyser, the command to see a complete list of processes is sp_who so type&lt;br /&gt;&lt;br /&gt;exec sp_who&lt;br /&gt;&lt;br /&gt;Then if you can see your pesky orphaned connection you use its spid to kill it, so type:&lt;br /&gt;&lt;br /&gt;kill &lt;span style="font-style: italic;"&gt;spid&lt;/span&gt;&lt;br /&gt;exec sp_who&lt;br /&gt;&lt;br /&gt;and they will magically dissappear from the list  :o)&lt;br /&gt;&lt;br /&gt;Everyone is happy and you can get on with the day, maybe after a congratulatory cuppa and biscuit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-7868278220187532947?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/7868278220187532947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=7868278220187532947' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/7868278220187532947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/7868278220187532947'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/02/hunting-and-killing-orphaned-processes.html' title='Hunting and killing orphaned processes'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-7331610988081220476</id><published>2007-02-04T22:31:00.000Z</published><updated>2007-02-04T22:54:08.083Z</updated><title type='text'>MySQL Stored Proceedures - You just need a maestro</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_IoitLPp2rZ8/RcZfzXnyOCI/AAAAAAAAAA8/kfFXPADcvlg/s1600-h/austin_maestro_01.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 214px; height: 111px;" src="http://bp3.blogger.com/_IoitLPp2rZ8/RcZfzXnyOCI/AAAAAAAAAA8/kfFXPADcvlg/s400/austin_maestro_01.jpg" alt="" id="BLOGGER_PHOTO_ID_5027811370124589090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;And I am not talking about an 80's talking car, seriously &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;Austin&lt;/span&gt; (went bust surprise surprise), night riders car might have talked to him but that didn't make it right.&lt;br /&gt;&lt;br /&gt;No the Maestro I am talking about is the rather nifty new MySQL administration tool which makes creating stored procedures so much easier. There has been a lot of discussion on the web about whether MySQL has what it takes to run enterprise level databases for real world companies and despite the fact that there are lots of examples of huge companies using it I feel that the feeling of nervousness stems from the fact that although the database is rock solid the management apps are &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;definitely&lt;/span&gt; not. Lots of good progress has been made of late particularly by the people at MySQL but most of their GUI apps are recently out of alpha and I do not like the fragmented approach they have adopted, &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;ie&lt;/span&gt;. mange your permissions and backup with this app, analyse your queries with this one and extract data with this one. I end up having 4 applications open to do a days work. Well not any more, &lt;a href="http://www.sqlmaestro.com/"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;sqlmaestro&lt;/span&gt;.com&lt;/a&gt; is the place to get the only MySQL management tool you will ever need, and all for only $149!&lt;br /&gt;&lt;br /&gt;Cheesy plug over - the reason I came across this software was because I wanted to use the new MySQL stored procedures and to see how they compare to &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;Microsoft's&lt;/span&gt; offering, which I have been recently introduced to as you know (because you read this every day don't you). I turns out that Stored &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;procedures&lt;/span&gt; have only recently been introduced into MySQL in version 5.1 and documentation and examples of &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;their&lt;/span&gt; use are a little sparse at present. This particular piece of software however has its own really good stored procedure manager which is why i downloaded it and found the rest of the tools it offers as a very nice surprise.&lt;br /&gt;&lt;br /&gt;I will go into how to actually write a stored procedure tomorrow, when I actually write a useful one, but to anyone who is just looking around to see how they can get into this there are a couple of things you have to do first it turns out. Unless you have just installed the latest build of Fedora or some other main stream Linux build you will have to upgrade both &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;PHP&lt;/span&gt; and MySQL (assuming you want to use &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;PHP&lt;/span&gt; of course). Stored procedures are supported in MySQL 5.1 but you cannot actually get at your stored procedures from &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;PHP&lt;/span&gt; without the &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;mysqli&lt;/span&gt; &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;addon&lt;/span&gt;. As we use &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;Centos&lt;/span&gt; as our weapon of choice on the Linux servers this means having a whole scale muck out. It turns out the safest way to upgrade either of these programs is to backup - remove - and reinstall which frankly appeals not at all (he he). I have tried it locally here but tomorrow I will be reorganising these programs, when its all over I will write some proper stored procedures and tell you all about it :o)&lt;br /&gt;&lt;br /&gt;l8r&lt;br /&gt;k&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-7331610988081220476?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/7331610988081220476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=7331610988081220476' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/7331610988081220476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/7331610988081220476'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/02/mysql-stored-proceedures-you-just-need.html' title='MySQL Stored Proceedures - You just need a maestro'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_IoitLPp2rZ8/RcZfzXnyOCI/AAAAAAAAAA8/kfFXPADcvlg/s72-c/austin_maestro_01.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-6663647159660962427</id><published>2007-02-02T20:42:00.000Z</published><updated>2007-02-02T21:12:30.096Z</updated><title type='text'>Freeing the beast - foreign keys and other nerdy guff</title><content type='html'>Been on a course - brushing up on my &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;SQL&lt;/span&gt; with the rest of the department and finding out some very interesting little tit bits which will speed things up at head office no end. I had always considered for example that stored procedures were really an organisational tool designed to reduce duplication of queries on the client side. Interestingly it turns out that they carry a good improvement in performance because the query is essentially &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;precompiled&lt;/span&gt; and all the execution planning and checking is already done. Could make for a busy Monday :o)&lt;br /&gt;&lt;br /&gt;Having got home I decided to look at some of the details of the MySQL databases which are less well used than the Microsoft &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;SQL&lt;/span&gt; databases, and definitely less critical, but still in need of efficient design. While reorganising things a little I found out a couple of slightly less well documented issues with creating foreign keys on a MySQL database which is already in use and therefore carrying a little baggage shall we say.&lt;br /&gt;&lt;br /&gt;A couple of things seem to cause problems and errors 105 and 121 seem to crop up a lot&lt;br /&gt;1. ensure that columns to be associated are of exactly the same type, for example a column of type INT will not be forced into a liaison with a column of type INT(10) unsigned.&lt;br /&gt;2. Ensure that all columns will match exactly, for example if one column has a NULL entry it is not going to conform to the relationship and it will ruin your evening.&lt;br /&gt;&lt;br /&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;That's&lt;/span&gt; just a couple of things, &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;I'll&lt;/span&gt; keep jotting about whatever else drops out of the woodwork. Next week I will post the first installment of the main event - taking our main MS &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;SQL&lt;/span&gt; databases to demon tweaks - exciting stuff :o)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-6663647159660962427?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/6663647159660962427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=6663647159660962427' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/6663647159660962427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/6663647159660962427'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/02/been-on-course-brushing-up-on-my-sql.html' title='Freeing the beast - foreign keys and other nerdy guff'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-4796984064245954370</id><published>2007-01-31T20:12:00.000Z</published><updated>2007-01-31T20:53:45.342Z</updated><title type='text'>So you edited the slave.......</title><content type='html'>When syncronising 2 databases via &lt;a href="http://dev.mysql.com/doc/refman/5.0/en/replication-howto.html"&gt;replication&lt;/a&gt; one thing you do not want to do is touch the slave in any way. The system is clever you see, it knows where its up to and really doesn't expect a helping hand. Unfortunatly this afternoon I went to edit my little utility meter reading database, a very simple and efficient little system, I just needed to add a column but I chose the slave by mistake. In the  immortal words of homer simpson - Doh.&lt;br /&gt;&lt;br /&gt;At this point everything falls apart, the slave process has a fit because it is trying to add a column which is already there and stops taking orders from the master. So at this point if you are also a bit of a dunce with 2 similarly named databases you need to follow these instructions to get your little donkeys back on the straight and narrow.&lt;br /&gt;&lt;br /&gt;1. Stop your slave with 'slave stop'&lt;br /&gt;2. Back up your master&lt;br /&gt;3. Restore it onto your slave&lt;br /&gt;4. On the master run the 'show master staus command' to get your log file and position&lt;br /&gt;5. On the slave run the following rather longer command.&lt;br /&gt;&lt;pre class="programlisting"&gt;mysql&gt; &lt;strong class="userinput"&gt;&lt;code&gt;CHANGE MASTER TO&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;   -&gt;     &lt;strong class="userinput"&gt;&lt;code&gt;MASTER_HOST='&lt;em class="replaceable"&gt;&lt;code&gt;master_host_name&lt;/code&gt;&lt;/em&gt;',&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;   -&gt;     &lt;strong class="userinput"&gt;&lt;code&gt;MASTER_USER='&lt;em class="replaceable"&gt;&lt;code&gt;replication_user_name&lt;/code&gt;&lt;/em&gt;',&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;   -&gt;     &lt;strong class="userinput"&gt;&lt;code&gt;MASTER_PASSWORD='&lt;em class="replaceable"&gt;&lt;code&gt;replication_password&lt;/code&gt;&lt;/em&gt;',&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;   -&gt;     &lt;strong class="userinput"&gt;&lt;code&gt;MASTER_LOG_FILE='&lt;em class="replaceable"&gt;&lt;code&gt;recorded_log_file_name&lt;/code&gt;&lt;/em&gt;',&lt;/code&gt;&lt;/strong&gt;&lt;br /&gt;   -&gt;     &lt;strong class="userinput"&gt;&lt;code&gt;MASTER_LOG_&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;POS&lt;/span&gt;=&lt;em class="replaceable"&gt;&lt;code&gt;recorded_log_position&lt;/code&gt;&lt;/em&gt;;&lt;/code&gt;&lt;/strong&gt;&lt;/pre&gt; 6. On the slave restart the slave process with 'slave start';&lt;br /&gt;7. Check its all &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;OK&lt;/span&gt; again with 'show slave status\G'&lt;br /&gt;8. Make a nice cup of tea and congratulate yourself on getting your &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;codling's&lt;/span&gt; out of the fire :o)&lt;br /&gt;&lt;br /&gt;More from the rack next week as I am getting educated tomorrow and &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;Friday&lt;/span&gt;, brushing up on my &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;SQL&lt;/span&gt; skills and seeing if &lt;a href="http://www.microsoft.com/sql/default.mspx"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Microsofts&lt;/span&gt; &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;SQL&lt;/span&gt; server 2005&lt;/a&gt; has anything to offer. Without being cynical however given the fact that &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;Microsoft's&lt;/span&gt; licensing model is getting more and more complicated and expensive they better have something really good up &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;their&lt;/span&gt; sleeves to regain my attention given how positive my recent &lt;a href="http://www.mysql.org/"&gt;MYSQL&lt;/a&gt; experiences have been.&lt;br /&gt;&lt;pre class="programlisting"&gt;&lt;strong class="userinput"&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/strong&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-4796984064245954370?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/4796984064245954370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=4796984064245954370' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/4796984064245954370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/4796984064245954370'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/01/so-you-edited-slave.html' title='So you edited the slave.......'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-4400340139626419624</id><published>2007-01-26T22:25:00.000Z</published><updated>2007-01-26T23:11:39.889Z</updated><title type='text'>Using AMF in Anger</title><content type='html'>So no sooner had I found a slinky new piece of software to try than an ideal opportunity to test it out comes along! How lucky am I :o)&lt;br /&gt;&lt;br /&gt;A request for a quick application to share a list of tasks landed in my in ear this morning, something simple to basically mimic an excel spreadsheet which needed to be shared between several people. Bear in mind we are cross platform so stop shouting "use a shared task list in exchange" because Entourage on the mac is pants, also this might eventually be shared all over the company and we don't let just anyone onto exchange (not because we don't love everyone it just to &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;blinkin&lt;/span&gt; slow). So I added a new module to our  internal application suite (codenamed &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;Fattie&lt;/span&gt;) and set to work creating a new service in &lt;a href="http://www.amfphp.org/"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;AMFPHP&lt;/span&gt;.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now it has to be said that of the 2 main benefits to this new approach the speed of development over XML is huge, I literally needed to declare the table of methods of which there are only 4 and write a very short function for each. So the application broke down to -&lt;br /&gt;1. Fetch a list of all records&lt;br /&gt;2. Fetch a full Entry&lt;br /&gt;3. Fetch a blank entry&lt;br /&gt;4. Save Entry&lt;br /&gt;&lt;br /&gt;in all 80 commented lines which I am sure with a bit of inspiration could be halved which would have taken about an hour of unbroken typing if I were ever to get one :o) Add to this 2 tables in the database for the tasks and contractors and the server side is done.&lt;br /&gt;&lt;br /&gt;One thing I am still getting used to in Flash is the &lt;a href="http://livedocs.macromedia.com/flashremoting/mx/Using_Flash_Remoting_MX/UseASData6.htm#1170158"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;recordset&lt;/span&gt; c&lt;/a&gt;&lt;a href="http://livedocs.macromedia.com/flashremoting/mx/Using_Flash_Remoting_MX/UseASData6.htm#1170158"&gt;lass&lt;/a&gt;, if you are using &lt;a href="http://www.amfphp.org/"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;AMF&lt;/span&gt;&lt;/a&gt; you really have to use the &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;recordset&lt;/span&gt; and this has required a change in my approach to interfaces.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_IoitLPp2rZ8/RbqFs7AlodI/AAAAAAAAAAk/ZMfH3gz7teg/s1600-h/Basic-interface.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp0.blogger.com/_IoitLPp2rZ8/RbqFs7AlodI/AAAAAAAAAAk/ZMfH3gz7teg/s400/Basic-interface.jpg" alt="" id="BLOGGER_PHOTO_ID_5024475341086106066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Up to now I have been a big fan of &lt;a href="http://www.flashloaded.com/"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;Flashloaded's&lt;/span&gt; BIT co&lt;/a&gt;&lt;a href="http://www.flashloaded.com/"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;mponents&lt;/span&gt;&lt;/a&gt; for Flash but &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;unfortunately&lt;/span&gt; they do not support the &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;recordset&lt;/span&gt; as a &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;dataprovider&lt;/span&gt; so I have had to dust off the standard Flash version 2 components and &lt;a href="http://www.thefreedictionary.com/bone+up"&gt;bone up&lt;/a&gt; on the &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;recordset&lt;/span&gt;. That said throwing a quick interface together took about 20 minutes:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_IoitLPp2rZ8/RbqGu7AloeI/AAAAAAAAAAs/sJPlMqsTsLs/s1600-h/Dialogue.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://bp0.blogger.com/_IoitLPp2rZ8/RbqGu7AloeI/AAAAAAAAAAs/sJPlMqsTsLs/s400/Dialogue.jpg" alt="" id="BLOGGER_PHOTO_ID_5024476474957472226" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Add to this another 20 minutes to create the only dialog box required in the application, that is used to add or edit an entry.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And all that left is a bit of programming to string it all together. As I mentioned before the main difference between how I used to use the BIT Components and the Flash Components is how the data provider is organised. When using a standard array based data provider you can access data using something like component.dataProvider[0].data whereas when dealing with &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;recordsets&lt;/span&gt; you have to use component.dataProvider.getItemAt(0).columnName. Seems simple but it probably wasted an hour today in one way or another. Of course now I have dutifully blogged it I shan't forget.&lt;br /&gt;&lt;br /&gt;The only thing left to finish off this little app was to take the existing excel worksheet and use the previously blogged technique to force the data into the new MySQL table - sweet :o)&lt;br /&gt;&lt;br /&gt;Once finished the other main benefit of &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;AMF&lt;/span&gt; kicks in and I can just tell its faster than an XML based equivalent would have been, can't tell you how but I just know.&lt;br /&gt;&lt;br /&gt;One improvement which I would have loved to try but I will save for another day is to try and finally get my head around the &lt;a href="http://www.adobe.com/devnet/flash/articles/flashpro_asp_03.html"&gt;data binding&lt;/a&gt; functions within Flash and using Delta packets to remove the requirement for the dialog box. It would have required some groovy &lt;a href="http://www.sephiroth.it/tutorials/flashPHP/cellRenderer/"&gt;cell &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;renderer's&lt;/span&gt;&lt;/a&gt; to add the combo boxes to an editable cell but I am sure it could be done.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-4400340139626419624?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/4400340139626419624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=4400340139626419624' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/4400340139626419624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/4400340139626419624'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/01/using-amf-in-anger.html' title='Using AMF in Anger'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_IoitLPp2rZ8/RbqFs7AlodI/AAAAAAAAAAk/ZMfH3gz7teg/s72-c/Basic-interface.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-5128207314002426518</id><published>2007-01-24T17:15:00.000Z</published><updated>2007-01-24T17:44:56.494Z</updated><title type='text'>Revisiting AMFPHP</title><content type='html'>I had a pleasant surprise this morning after I decided to pop in and see how the &lt;a href="http://www.amfphp.org/"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;AMFPHP&lt;/span&gt;&lt;/a&gt; was getting on, it turns out very nicely thank you and I wish I had popped in 8 months ago when it came out of beta!&lt;br /&gt;&lt;br /&gt;For those of you that don't know &lt;a href="http://www.amfphp.org/"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;AMFPHP&lt;/span&gt;&lt;/a&gt; is an open source project which is very like &lt;a href="http://www.adobe.com/products/flashremoting/"&gt;Flash &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Remoting&lt;/span&gt; Server&lt;/a&gt; in that it allows you to more &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;tightly&lt;/span&gt; bind a flash application to an application server. There are several reasons why this is a good thing but there are also several reasons why we have never used it in the past even though, as Flash users, it is a powerful tool to have around.&lt;br /&gt;&lt;br /&gt;In the beginning there was &lt;a href="http://www.adobe.com/products/flashremoting/"&gt;Flash &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;Remoting&lt;/span&gt; Server&lt;/a&gt;, it cost a lot of money (-1), it tied you to &lt;a href="http://www.adobe.com/products/coldfusion/"&gt;Cold Fusion&lt;/a&gt; as your application server (-2) and it tied you to &lt;a href="http://www.adobe.com/products/flash/flashpro/"&gt;Flash&lt;/a&gt; as a front end(-3). Now I like &lt;a href="http://www.adobe.com/products/flash/flashpro/"&gt;Flash&lt;/a&gt; as a web app programming tool for several reasons, its cross platform, its very readily available, its quite quick and the &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;run time&lt;/span&gt; is free, so as a means for creating small web based or intranet based apps its very nice. The problem I have always had with &lt;a href="http://www.adobe.com/products/flash/flashpro/"&gt;Flash&lt;/a&gt; is that it may not be around for ever and I &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;don't&lt;/span&gt; want to get tied to it just in case it is &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;superseded&lt;/span&gt; also the server side kit from &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Macromedia&lt;/span&gt; as was very expensive. So when we started developing these applications we used &lt;a href="http://www.adobe.com/products/flash/flashpro/"&gt;Flash&lt;/a&gt; for the front end but &lt;a href="http://www.php.net/"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;PHP&lt;/span&gt;&lt;/a&gt; on the server and always used XML to communicate data backwards and forwards leaving the door open to AJAX, JAVA or anything else we might want to use as a front end.&lt;br /&gt;&lt;br /&gt;The only downside to using XML is speed, one very nice thing which I have been using more recently is the XML formatting functions on Microsoft &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;SQL&lt;/span&gt; server which meant that there was no need to assemble an XML document from the query data using &lt;a href="http://www.php.net/"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;PHP&lt;/span&gt;&lt;/a&gt;, simply run the query and send it off to the client. However once this arrived often there are quite &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_12"&gt;complicated&lt;/span&gt; functions used to extract the data from XML and display it which &lt;a href="http://www.adobe.com/products/flash/flashpro/"&gt;Flash&lt;/a&gt; was not so hot at sometimes.&lt;br /&gt;&lt;br /&gt;So long story short I found that &lt;a href="http://www.amfphp.org/"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;AMFPHP&lt;/span&gt;&lt;/a&gt; is on release 1.2 with a 1.9 in Beta, installed it in about 5 minutes and had a basic application running in 10. The real change from my point of view is that it is now compatible to a greater or lesser extent with AJAX and Javascript which is great news. So I have spent the rest of the day looking at how much more efficiently this approach can be used to send data backwards and forward between client applications and the server than XML.&lt;br /&gt;&lt;br /&gt;The answer is much quicker in 2 respects, firstly the data is serialised at both ends and transmitted as binary data so the latency is much reduced, also as the data arrives at the client side as native data types processing is quicker and much more straight forward. Suddenly the data binding in &lt;a href="http://www.adobe.com/products/flash/flashpro/"&gt;Flash&lt;/a&gt; standard &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_14"&gt;components&lt;/span&gt; makes sense! Writing the code is much more straight forward when you get your head around the way that server side classes are constructed and how the information arrives, so much so that a page of programming  250 lines long becomes a far nicer 40 lines long with another 30 odd on the server side. If you program in &lt;a href="http://www.adobe.com/products/flash/flashpro/"&gt;Flash&lt;/a&gt; you need this! I have taken the liberty of linking to the &lt;a href="http://www.amfphp.org/showcase.html"&gt;showcase page&lt;/a&gt; which lists some great sites apparently using &lt;a href="http://www.amfphp.org/"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;AMFPHP&lt;/span&gt;&lt;/a&gt; in the wild :o)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-5128207314002426518?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/5128207314002426518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=5128207314002426518' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/5128207314002426518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/5128207314002426518'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/01/revisiting-amfphp.html' title='Revisiting AMFPHP'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-2874843942689104112</id><published>2007-01-23T12:39:00.000Z</published><updated>2007-01-23T13:09:51.104Z</updated><title type='text'>Bulk Import to MySQL</title><content type='html'>2 posts in a day! Ring the bells.&lt;br /&gt;&lt;br /&gt;Just a quick post because I have found a nice solution to a problem I have encountered a lot and that is that when you move from MS &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;SQL&lt;/span&gt; server to MySQL you tend to miss some of the nice quick data import systems in &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;DTS&lt;/span&gt;. A typical scenario is how do I bulk import into MySQL from an excel spreadsheet which someone has given me?&lt;br /&gt;&lt;br /&gt;The solution is scary but quick and &lt;a href="http://www.modwest.com/help/kb6-253.html"&gt;described nicely here&lt;/a&gt;. Essentially save your spreadsheet as a &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;csv&lt;/span&gt; file, FTP it up to your MySQL server and start an &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;SSL&lt;/span&gt; session. Log into MySQL on the command line and switch to your intended target database with "USE &lt;span style="font-style: italic;"&gt;database name&lt;/span&gt;" then use the command "load data local &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;infile&lt;/span&gt; '&lt;span style="font-style: italic;"&gt;Path to &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;csv&lt;/span&gt;&lt;/span&gt;' into table &lt;span style="font-style: italic;"&gt;table name&lt;/span&gt; fields terminated by ',' lines terminated by '\n' (&lt;span style="font-style: italic;"&gt;field name,field name...........&lt;/span&gt;);". Hey Presto its in as long as your fields are in the correct order, one nice aspect is it even allows you to import into auto increment fields.&lt;br /&gt;&lt;br /&gt;Sweet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-2874843942689104112?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/2874843942689104112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=2874843942689104112' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/2874843942689104112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/2874843942689104112'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/01/bulk-import-to-mysql.html' title='Bulk Import to MySQL'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-4480096249988971592</id><published>2007-01-23T10:56:00.000Z</published><updated>2007-01-23T11:24:50.604Z</updated><title type='text'>Rip Poblems and the Legendry Second Tunnel</title><content type='html'>No posts for a few days but &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;that's&lt;/span&gt; just because there has not been anything to say, not &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;because&lt;/span&gt; I have gone off blogging :o)&lt;br /&gt;&lt;br /&gt;Its taken a few days to move one of our applications to Manchester and it has taken a while to get over a sticky routing problem, in that my router at home which is &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;IPSEC&lt;/span&gt; tunnelled to the office would not allow me to access the server at Manchester even though RIP was enabled. So in a nutshell from home I could get onto anything on the head office &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;sub net&lt;/span&gt; but not access any further &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;sub nets&lt;/span&gt; of which we have one each for the pubs and one for &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;Manchester&lt;/span&gt;. After looking into static routes which didn't help and trying to investigate RIP I realised that this was a waste of time because of course the grand plan is to have Manchester as a self reliant application server in its own right and by routing through the head office I was therefore reliant upon head office to get to Manchester.&lt;br /&gt;&lt;br /&gt;So the quest now became setting up a second &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;IPSEC&lt;/span&gt; tunnel to Manchester alongside the existing tunnel to Head Office, a model which would eventually be rolled out to all the remote locations. Now on paper setting up a second tunnel should be really straight forward but if anyone else has tried it you will know that sometimes they work and sometimes they don't, the most frustrating part being that unless you go the whole hog and set up an event log server you get no feedback so when it doesn't connect you just have to keep trying. 10pm last night I was beginning to loose my rag, deleted the tunnel profile from my router, set up another &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;identical&lt;/span&gt; profile and bingo - worked first time.&lt;br /&gt;&lt;br /&gt;So now the model is as illustrated below which means that when the applications are mirrored properly and all the data is replicating we will have a nice &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;fail over&lt;/span&gt; system without breaking the bank. The only &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;trade off&lt;/span&gt; being that if Manchester went offline moving users to head office is simple but going back means a backup/restore of the data and a bit of a &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;faff&lt;/span&gt; due to the choice of replicating data rather than clustering.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_IoitLPp2rZ8/RbXwY7AlocI/AAAAAAAAAAY/qdK6faI3BcM/s1600-h/Network.jpg"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_IoitLPp2rZ8/RbXwY7AlocI/AAAAAAAAAAY/qdK6faI3BcM/s400/Network.jpg" alt="" id="BLOGGER_PHOTO_ID_5023185270349341122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_IoitLPp2rZ8/RbXvn7AlobI/AAAAAAAAAAM/Xo27kCaLb0Y/s1600-h/Network.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-4480096249988971592?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/4480096249988971592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=4480096249988971592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/4480096249988971592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/4480096249988971592'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/01/rip-poblems-and-legendry-second-tunnel.html' title='Rip Poblems and the Legendry Second Tunnel'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_IoitLPp2rZ8/RbXwY7AlocI/AAAAAAAAAAY/qdK6faI3BcM/s72-c/Network.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-3839980725066866058</id><published>2007-01-15T10:56:00.001Z</published><updated>2007-01-15T11:14:17.180Z</updated><title type='text'>More MySQL replication and dare I mention the I-Phone</title><content type='html'>I was not surprised to log into the MySQL slave this morning and find out that it had completely failed to replicate over the weekend but what was &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;disappointing&lt;/span&gt; was how easy it was to fix! I just found another how-to ran through the same information in a slightly different order and hey presto! So if anyone is unfortunate enough to have ended up on this blog looking for MySQL replication info &lt;a href="http://docs.hp.com/en/5991-7431/ar01s05.html"&gt;click here&lt;/a&gt; because the last link I posted didn't work.&lt;br /&gt;&lt;br /&gt;Surfing around over the weekend and I must confess I am getting a bit bored of the I-Phone hype. Obviously I would be foolish to comment too &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;negatively&lt;/span&gt; lest I be abused by the faithful as has happened after a rather frank article on the register which gave a few things you could do with a &lt;a href="http://www.theregister.co.uk/2007/01/11/top_iphone_tips/"&gt;dead I-Phone.&lt;/a&gt; I also won't mention the fact that I am on my second &lt;a href="http://www.europe.htc.com/products/htcp4350.html"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;HTC&lt;/span&gt; smart phone&lt;/a&gt; both of which have had touch screens and although I am sure the I-Phones is better the general concept is hardly revolutionary.&lt;br /&gt;&lt;br /&gt;No the thing I would like to mention is the rather cool &lt;a href="http://www.gizmodo.com/gadgets/smartphones/fics-linuxbased-smartphone-213016.php"&gt;Linux based smart phone from &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;FIC&lt;/span&gt;&lt;/a&gt; obviously it being Linux based and open source it will not be quite as polished as the I-Phone but I think when we are talking in terms of a revolutionary product having a phone which is so flexible and 'open' this seems to be a &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;truly&lt;/span&gt; new approach. It may only be a toy for techies at the moment but I will certainly be getting one when they are available :o)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-3839980725066866058?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/3839980725066866058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=3839980725066866058' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/3839980725066866058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/3839980725066866058'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/01/i-was-not-surprised-to-log-into-mysql.html' title='More MySQL replication and dare I mention the I-Phone'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-7171766705977496481</id><published>2007-01-12T16:52:00.000Z</published><updated>2007-01-12T17:15:36.752Z</updated><title type='text'>Muses on Replication</title><content type='html'>So the Manchester server is working nicely 2 weeks on, the reporting system is beginning to be useful and its time to develop the infrastructure a little more. The ideal scenario with this new &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;off site&lt;/span&gt; system would be that if it were to fail for whatever reason we could bring on another to replace it very quickly. In this way if we begin to move the pubs everyday applications over we know that we could always turn on an up-to-date backup within a few minutes thereby increasing the peace as &lt;a href="http://www.publicenemy.com/"&gt;Chuck D&lt;/a&gt; might say.&lt;br /&gt;&lt;br /&gt;The best &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;approach&lt;/span&gt; for this in my opinion is not to go all out and create an automatic &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;fail over&lt;/span&gt; system with &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;database&lt;/span&gt; clustering etc etc as its just not that much of a nightmare if the systems are unavailable for 5 minutes. Instead I am going to use replication which creates a live backup of the data but sends changes over periodically rather than trying to keep total &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;synchronisation&lt;/span&gt;.  MySQL has a very nice replication system which operates in a master slave relationship - Manchester being the Master and head office being the slave.&lt;br /&gt;&lt;br /&gt;There are lots of benefits to this approach but ironically backup is not one of them. Having a database to backup from on the local network is obviously a &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;benefit&lt;/span&gt; but one of the things with replication is that if you dismember your master it will automatically dismember your slave right on time :o)&lt;br /&gt;&lt;br /&gt;So you still have to backup in the traditional sense but we can do it here instead of in Manchester and if we need to take one of the databases down for &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;maintenance&lt;/span&gt; we have a way we can do this in a controlled manner rather than getting up at 2AM and hoping &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;no one&lt;/span&gt; wants to use the systems!&lt;br /&gt;&lt;br /&gt;I will not go into a 'How To' about replication on MySQL because I just used someone &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;else's&lt;/span&gt; blog to accomplish it so &lt;a href="http://www.databasejournal.com/features/mysql/article.php/3355201"&gt;here is the link&lt;/a&gt;. Also having set it up I now have to go home and see if my changes filter through by &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;Monday&lt;/span&gt; morning, speaking of which did anyone else see the BBC thing with the &lt;a href="http://news.bbc.co.uk/1/hi/health/651014.stm"&gt;tiny camera&lt;/a&gt; last night? &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;Eugh&lt;/span&gt;!&lt;br /&gt;&lt;br /&gt;Scheduled for next week - I really must get round to playing with Net Beans, found it last week and it really looks like somebody finally made a nice &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;use able&lt;/span&gt; &lt;a href="http://www.netbeans.org/"&gt;web app development tool for Java&lt;/a&gt; which must be worth a couple of hours.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-7171766705977496481?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/7171766705977496481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=7171766705977496481' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/7171766705977496481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/7171766705977496481'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/01/muses-on-replication.html' title='Muses on Replication'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-7023657477606804116</id><published>2007-01-08T17:22:00.000Z</published><updated>2007-01-08T17:37:53.795Z</updated><title type='text'>Virtual Jiggery Pokery</title><content type='html'>Now that our Manchester server is up and running the main thrust of the work this week has been on moving our company wide reporting system over to this new facility. After tests last week the performance of the system running over the &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;VPN&lt;/span&gt; has been very pleasing and even large queries over the accounts database for invoice reports is perfectly acceptable.&lt;br /&gt;&lt;br /&gt;A little background on the reporting system would be useful at this point I suppose or this won't mean a whole lot!&lt;br /&gt;&lt;br /&gt;Basically the system is a &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;PHP&lt;/span&gt; web application with a &lt;a href="http://www.adobe.com/products/flash/flashpro/"&gt;Flash&lt;/a&gt; front end, the key aspect of this system is the &lt;a href="http://pear.php.net/package/Spreadsheet_Excel_Writer"&gt;excel spreadsheet writer pear module&lt;/a&gt; for &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;PHP&lt;/span&gt;. The reason for this &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;approach&lt;/span&gt; is that most reporting systems, crystal, jasper etc etc can create very nice reports but the emphasis is on each report being a presentable document. Although you can export or generate reports in excel the approach we have taken is to allow a shopping basket of reports to generate a whole workbook full of &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;sub reports&lt;/span&gt; which can then be analysed in a much more &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;convenient&lt;/span&gt; manner without having to amalgamate reports or remove excess formatting.&lt;br /&gt;&lt;br /&gt;One problem we have found today was an odd quirk with our virtual servers. We currently have 4 virtual &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;CentOS&lt;/span&gt; machines running on a &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;VMware&lt;/span&gt; server installation and the original intention was to have a separate machine for each function &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;ie&lt;/span&gt;. one for MySQL, one for the web application, one for &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;NAGIOS&lt;/span&gt; (after the problems with our thin client) and one for stuff :o)&lt;br /&gt;&lt;br /&gt;The problem we found, which is &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;quite&lt;/span&gt; probably my fault, is that accessing the MySQL &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;database&lt;/span&gt; on the virtual host from the web application server on another virtual host was &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;sooooo&lt;/span&gt; slow it was useless. Therefore we have now had to install &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_13"&gt;MySQL&lt;/span&gt; on the same host and all is well but I am not sure that this is how we will want our system long term.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-7023657477606804116?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/7023657477606804116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=7023657477606804116' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/7023657477606804116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/7023657477606804116'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/01/virtual-jiggery-pokery.html' title='Virtual Jiggery Pokery'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-8782903525130996324</id><published>2007-01-04T15:11:00.000Z</published><updated>2007-01-04T15:35:00.726Z</updated><title type='text'>Note to self - stop forgetting things!</title><content type='html'>One problem I find with skipping around from one system to another is that one forgets things, I have just been setting up our new virtual server to house our cross company reporting system and half way through wading around in RPM packages I got a real sense of &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;deja&lt;/span&gt; &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;vu&lt;/span&gt;. When you install &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;linux&lt;/span&gt; it sets itself up very nicely to have a web server and a scripting language (&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;PHP&lt;/span&gt;) and even its own database server,  however one thing that &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;Linux&lt;/span&gt; does not like is Microsoft &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;SQL&lt;/span&gt; server so the  idea of adding an extension to query this sort of database would seem simple.&lt;br /&gt;&lt;br /&gt;How wrong can you be!&lt;br /&gt;&lt;br /&gt;So just in case anyone else comes across this problem follow these steps.&lt;br /&gt;&lt;br /&gt;1: Install the &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;FreeTDS&lt;/span&gt; support library&lt;br /&gt;rpm -i ftp://fr2.rpmfind.net/linux/conectiva/snapshot/i386/RPMS.database/libsybdb4-0.62.4-65381cl.i386.rpm&lt;br /&gt;&lt;br /&gt;2: Install &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;FreeTDS&lt;/span&gt;&lt;br /&gt;rpm -i http://belnet.dl.sourceforge.net/sourceforge/phprpms/freetds-0.63-2.i386.rpm&lt;br /&gt;&lt;br /&gt;3: Install the &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;PHP&lt;/span&gt; &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;MSSQL&lt;/span&gt; extension&lt;br /&gt;rpm -i http://mesh.dl.sourceforge.net/sourceforge/phprpms/php-mssql-4.3.9-3.2.1.i386.rpm&lt;br /&gt;&lt;br /&gt;Seems simple but it just took an hour to find all those bits and pieces - enjoy.&lt;br /&gt;&lt;br /&gt;As an aside the virtual servers are performing well, ping times are obviously higher than querying the servers on the local network but 20ms for the round trip should mean that the reporting system still works &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;relatively&lt;/span&gt; quickly. The server is now querying one of our MYSQL servers and the master &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;MSSQL&lt;/span&gt; server which is nice however for some reason the &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;Auth&lt;/span&gt; package in &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;PHP&lt;/span&gt; has decided to play hardball - 2 more hours left in the day so here we go.....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-8782903525130996324?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/8782903525130996324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=8782903525130996324' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/8782903525130996324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/8782903525130996324'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/01/note-to-self-stop-forgetting-things.html' title='Note to self - stop forgetting things!'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-9010540068586872792</id><published>2007-01-03T16:27:00.000Z</published><updated>2007-01-03T16:44:20.815Z</updated><title type='text'>A mancky extension to the VPN</title><content type='html'>Our VPN now extends all the way from Tunbridge Wells to Manchester thanks to our new node which appeared on the network this afternoon!&lt;br /&gt;&lt;br /&gt;Sounds easier than it was mainly because in setting up the hardware to go to manchester, I was so focused on making sure all the little numbers were correctly set to allow it to take the place of the server, I missed the little button which allows me to actually talk to it once it is in place. Not to worry, the nice technical people sorted it out and it is now ready to form the basis of our company reporting system. One other interesting thing which we have done with this new setup is to put a toe in the virtualisation pool. We have one physical server in the rack but our man Rob has managed to convince it that in fact it is 2 separate servers and in fact we may make a 3rd if we decide we need another separate system. The bonus of this approach for those of you who don't know is that if one 'virtual machine' has a fit and falls over the others continue on as if nothing happened. That is of course as long as the hardware doesn't fail in which case you loose the lot :o)&lt;br /&gt;&lt;br /&gt;It will be fine I am sure.&lt;br /&gt;&lt;br /&gt;So the next job is to begin to move our base reporting system over from our test server to Manchester.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-9010540068586872792?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/9010540068586872792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=9010540068586872792' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/9010540068586872792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/9010540068586872792'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/01/mancky-extension-to-vpn.html' title='A mancky extension to the VPN'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-2497226760313606583</id><published>2007-01-02T14:10:00.000Z</published><updated>2007-01-02T14:40:11.026Z</updated><title type='text'>Detox</title><content type='html'>We're back! After having failed miserably to get the thin client running before the holidays it was relieving that we had a rather uneventful holiday in terms of IT failure. I have moved on to trying a micro drive instead of the flash card as the main disc but I &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;don't&lt;/span&gt; really want to spend much more time on it as we can use it for something else and maybe a mini &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;itx&lt;/span&gt; based PC would be a better option :o)&lt;br /&gt;&lt;br /&gt;We recently commissioned a server in a data centre in Manchester and that should be plugged into our &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;VPN&lt;/span&gt; this week so I am looking forward to finally getting some time to investigate the possibilities that will bring. Eventually the plan is to completely split the computing tasks between head office and a rack in Manchester so that &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;where ever&lt;/span&gt; possible the hardware can be taken off site, there are lots of obvious benefits to this but the big question is speed.&lt;br /&gt;&lt;br /&gt;If the setup proves to be quick enough we may be able to host all of our databases in Manchester but I have a feeling that a more likely scenario would be that all of the pub applications and data  will be held in &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;Manchester&lt;/span&gt; and all of the head office applications will stay here. The big question is reporting as we are building a system at present which is capable of generating reports on the fly from any of the databases we have be it accounts, HR or pub stock etc etc. The burning question is if we have to split the data between sites can we still report seamlessly across them?&lt;br /&gt;&lt;br /&gt;Watch this space.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-2497226760313606583?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/2497226760313606583/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=2497226760313606583' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/2497226760313606583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/2497226760313606583'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2007/01/detox.html' title='Detox'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-2516790219350759854</id><published>2006-12-22T09:47:00.000Z</published><updated>2006-12-22T10:15:18.795Z</updated><title type='text'>The curse of  the micro client</title><content type='html'>Well I haven't posted for 2 days mainly because I haven't made any concrete progress in the last 2 days. The limitations of the device in question are beginning to be annoying - if only the guys had pushed the boat out and installed 256 MB of RAM it would be a completely different story.&lt;br /&gt;&lt;br /&gt;The current thrust of the work in trying to get a useful setup on our micro client has been using &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;VMWare&lt;/span&gt; to get a minimal installation of the &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;Slackware&lt;/span&gt; &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;Linux&lt;/span&gt; distribution which can then be imaged and put onto our &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;compact&lt;/span&gt; flash card. The trouble is that even with the cut down kernel and using the excellent package management tool which come in the &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;Slackware&lt;/span&gt; setup, as soon as a few packages are selected it bloats very quickly to our 128MB limit.&lt;br /&gt;&lt;br /&gt;Another problem seems to be that &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_5"&gt;Slackware&lt;/span&gt; has a slightly different folder configuration to the fedora/&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;red hat&lt;/span&gt;/&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;centos&lt;/span&gt; &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;distros&lt;/span&gt; and as a result &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;nagios&lt;/span&gt; struggles to &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;configure&lt;/span&gt; itself. All a bit painful really and it might be easier to look at another network monitoring tool which is a little more basic.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-2516790219350759854?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/2516790219350759854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=2516790219350759854' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/2516790219350759854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/2516790219350759854'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2006/12/well-i-havent-posted-for-2-days-mainly.html' title='The curse of  the micro client'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-2006382146027060413</id><published>2006-12-19T09:48:00.000Z</published><updated>2006-12-19T10:13:35.381Z</updated><title type='text'>Training the puppy.</title><content type='html'>Having spent a few days using the new 'device' now it is becoming clearer that my initial plan might not be &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;practical&lt;/span&gt;. No great surprise there as I am sure anybody who has ever had a plan will agree but thankfully all is not lost.&lt;br /&gt;&lt;br /&gt;The root of the problem is the lack of RAM on the computer, as puppy &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;Linux&lt;/span&gt; requires 50-60Mb of RAM to sit in and the device only has 128 available which is very constricting. The only applications I wanted to install were &lt;a href="http://nagios.org/"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Nagios&lt;/span&gt; &lt;/a&gt;and &lt;a href="http://www.apache.org/"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;Apache&lt;/span&gt;&lt;/a&gt; but in order to compile these programs I would also need &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;devx&lt;/span&gt; which filled up the available resources even before it could fully install never mind the other apps. This required a rethink and at Robs suggestion we tried compiling these programs on a &lt;a href="http://www.vmware.com/"&gt;virtual machine&lt;/a&gt;, the idea being to copy the finished items back afterwards. On digging a little deeper it seems that this approach may also be flawed because when looking into the rather nifty &lt;a href="http://www.nagiosexchange.org/NagiosOnCD.126.0.html"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Nagios&lt;/span&gt; live CD&lt;/a&gt; which is a &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;precompiled&lt;/span&gt; &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;fully&lt;/span&gt; operational ISO of &lt;a href="http://www.apache.org/"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;Apache&lt;/span&gt;&lt;/a&gt; and &lt;a href="http://nagios.org/"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;Nagios&lt;/span&gt;&lt;/a&gt; with no other rubbish thrown in it seems that the minimum required RAM is 256 MB.&lt;br /&gt;&lt;br /&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;Doh&lt;/span&gt;!&lt;br /&gt;&lt;br /&gt;Enter &lt;a href="http://interoz.com/egypt/cheops.htm"&gt;Cheops&lt;/a&gt; to save the day!&lt;br /&gt;&lt;br /&gt;On browsing the available &lt;a href="http://www.puppylinux.org/wikka/DotPupsContributions"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;dotpups&lt;/span&gt;&lt;/a&gt;, which are prepackaged installs for puppy much like &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;RPM's&lt;/span&gt; for red hat, I found a program called &lt;a href="http://www.marko.net/cheops/index.shtml"&gt;Cheops&lt;/a&gt; which appears to be an anorexic version of &lt;a href="http://nagios.org/"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;Nagios&lt;/span&gt;&lt;/a&gt;. It may not be quite as polished but essentially looks as though it will do what I need which is tell me or the other IT guys if a server or one of the more essential switches falls over during the festive season. Installation is a breeze and so far it is quite happily mapping the network without me having to even tell it where to look which is nice :o)&lt;br /&gt;&lt;br /&gt;Watch this space.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-2006382146027060413?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/2006382146027060413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=2006382146027060413' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/2006382146027060413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/2006382146027060413'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2006/12/training-puppy.html' title='Training the puppy.'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-7711214021005034173</id><published>2006-12-18T11:05:00.000Z</published><updated>2006-12-18T11:39:22.454Z</updated><title type='text'>Its Arrived!</title><content type='html'>Exciting news - Christmas has come early for the IT department (or at least for me because no body else can get near it!) as our shiny new toy has arrived. About four weeks ago now I read an &lt;a href="http://www.reghardware.co.uk/2006/11/30/diskless_linux_web_pcs/"&gt;article&lt;/a&gt; on &lt;a href="http://www.theregister.co.uk/"&gt;the register&lt;/a&gt; about thin clients and more specifically a company called &lt;a href="http://www.norhtec.com/"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;Norhtec&lt;/span&gt; &lt;/a&gt;and their new &lt;a href="http://www.norhtec.com/products/mcjr/index.html"&gt;micro client &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_1"&gt;Jr&lt;/span&gt;&lt;/a&gt;. This is a very simple embedded computer based on a &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;lowly&lt;/span&gt; 200 &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_3"&gt;MHz&lt;/span&gt; processor which is designed to run a cut down version of &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;Linux&lt;/span&gt; for simple tasks, but it turns out to be surprisingly capable.&lt;br /&gt;&lt;br /&gt;The application I have in mind for it is as a platform for our &lt;a href="http://nagios.org/"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;Nagios&lt;/span&gt;&lt;/a&gt; network monitoring system which is &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_6"&gt;currently&lt;/span&gt; running on a cheap desktop machine loaded with &lt;a href="http://fedora.redhat.com/"&gt;Fedora&lt;/a&gt;. Given that desktop machines can use anything up to 200 Watts even when free wheeling and of course even running &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_7"&gt;Linux&lt;/span&gt; they &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_8"&gt;occasionally&lt;/span&gt; have glitches and crash, the idea of having a  tiny computer with no moving parts and which only requires 15 Watts is very appealing both from an environmental and a &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;reliability&lt;/span&gt; standpoint.&lt;br /&gt;&lt;br /&gt;When the machine arrived first impressions were very good, its tiny - about the same size as a 3.5" hard disk, and boots up with the (optional) compact flash based puppy &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;Linux&lt;/span&gt; &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;installation&lt;/span&gt; in about 2 minutes. The only thing we had to do was quickly pop to &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;Maplins&lt;/span&gt; for an &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_13"&gt;adapter&lt;/span&gt; to change the rather exotic Thai power pins to something more mainstream :o)&lt;br /&gt;&lt;br /&gt;As the operating system runs entirely in RAM it takes a while to get into the mindset of installing applications to the master rather than installing into RAM and the application &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_14"&gt;disappearing&lt;/span&gt;  next time you boot up.&lt;br /&gt;&lt;br /&gt;So far I have installed &lt;a href="http://www.mozilla.com/en-US/firefox/"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_15"&gt;FireFox&lt;/span&gt; 2&lt;/a&gt; which runs nicely even with the new &lt;a href="http://labs.adobe.com/technologies/flashplayer9/releasenotes.html#overview"&gt;Flash 9 Beta &lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_16"&gt;plug in&lt;/span&gt;&lt;/a&gt;, and this afternoon I will attempt to squeeze &lt;a href="http://www.apache.org/"&gt;Apache&lt;/a&gt; and &lt;a href="http://nagios.org/"&gt;&lt;span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;Nagios&lt;/span&gt;&lt;/a&gt; onto it if they will fit. Might need to have a muck out first though ;o)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-7711214021005034173?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/7711214021005034173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=7711214021005034173' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/7711214021005034173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/7711214021005034173'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2006/12/its-arrived.html' title='Its Arrived!'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5077316080233395369.post-3039659522966963232</id><published>2006-12-15T12:23:00.000Z</published><updated>2006-12-15T12:56:44.291Z</updated><title type='text'>IT begins</title><content type='html'>We have been having discussions about bringing some new elements to the company website, this blog is what you might call a toe in the water, if we find that we can keep up the postings and write something which is actually interesting we may have to create a blog on our main site. Over the next couple of weeks I will try to put up some background posts as well as some progress posts to fill in the details about the nature of IT at BandP.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5077316080233395369-3039659522966963232?l=beerbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://beerbytes.blogspot.com/feeds/3039659522966963232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5077316080233395369&amp;postID=3039659522966963232' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/3039659522966963232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5077316080233395369/posts/default/3039659522966963232'/><link rel='alternate' type='text/html' href='http://beerbytes.blogspot.com/2006/12/it-begins.html' title='IT begins'/><author><name>Kieron Williams</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
