<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='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' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-4775033873078313696</atom:id><lastBuildDate>Mon, 14 May 2012 21:30:43 +0000</lastBuildDate><category>apache</category><category>linux</category><category>education</category><category>security breach</category><category>resignation</category><category>eponyms</category><category>joomla</category><category>surgical training</category><category>vmware</category><category>MMC</category><category>information</category><category>migration</category><category>MTAS</category><category>server setup</category><category>plesk</category><category>3g</category><category>surgery</category><category>systray</category><category>permissions</category><category>tutorials</category><category>ST2</category><category>virtual host</category><category>usb modem</category><category>appendicitis</category><category>logwatch</category><category>NHS</category><category>ubuntu</category><category>choose and book</category><category>mod_security</category><category>disable mod_security</category><category>vmware tools</category><title>Surgeons Net Blog</title><description>Surgeons Net is an educational resource for surgeons. It's here that I'll make announcements about that website, but also write about any interesting developments in Surgery or useful snippets of information about IT. May also use it for a general rant about the NHS!</description><link>http://blog.surgeons.org.uk/</link><managingEditor>noreply@blogger.com (Neville Dastur)</managingEditor><generator>Blogger</generator><openSearch:totalResults>49</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-632537548602444269</guid><pubDate>Sat, 03 Mar 2012 20:50:00 +0000</pubDate><atom:updated>2012-03-03T21:02:23.769Z</atom:updated><title>Photographing the moon</title><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-1TCo04n1obg/T1KDGXVOAQI/AAAAAAAAAB4/z1d_h2_VEhA/s1600/Moon030320122042.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="244" src="http://3.bp.blogspot.com/-1TCo04n1obg/T1KDGXVOAQI/AAAAAAAAAB4/z1d_h2_VEhA/s320/Moon030320122042.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;It was such a clear night tonight I thought I would try and get some nice shots of the moon.&lt;br /&gt;&lt;br /&gt;Turned out to be more difficult than I thought. The first lot just came out as bright white circles. After a little reading it seems that bright sunny day settings are best.&lt;br /&gt;&lt;br /&gt;So started at ISO 100 F11 1/125, which were okay. But I think the best shot I got was this one at F16 1/80&lt;br /&gt;&lt;br /&gt;Note that this was on a fairly cheap Tamron 70-300mm zoom lens. So nothing fancy.&lt;br /&gt;&lt;br /&gt;Enjoy ...&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-632537548602444269?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2012/03/it-was-such-clear-night-tonight-i.html</link><author>noreply@blogger.com (Neville Dastur)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-1TCo04n1obg/T1KDGXVOAQI/AAAAAAAAAB4/z1d_h2_VEhA/s72-c/Moon030320122042.jpg' height='72' width='72'/><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-2000403920947864212</guid><pubDate>Sat, 04 Feb 2012 17:03:00 +0000</pubDate><atom:updated>2012-02-04T17:03:52.021Z</atom:updated><title></title><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-jQkoI56-v4A/Ty1kkZP1HWI/AAAAAAAAABw/Q1wRlac54x0/s1600/27012012244.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/-jQkoI56-v4A/Ty1kkZP1HWI/AAAAAAAAABw/Q1wRlac54x0/s200/27012012244.jpg" width="154" /&gt;&lt;/a&gt;&lt;/div&gt;I saw this on a ward the other day. With the current state of funding in the NHS, maybe we will be seeing more of these!&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-2000403920947864212?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2012/02/i-saw-this-on-ward-other-day.html</link><author>noreply@blogger.com (Neville Dastur)</author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-jQkoI56-v4A/Ty1kkZP1HWI/AAAAAAAAABw/Q1wRlac54x0/s72-c/27012012244.jpg' height='72' width='72'/><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-2256117354835208324</guid><pubDate>Sat, 04 Feb 2012 16:46:00 +0000</pubDate><atom:updated>2012-02-04T16:46:32.239Z</atom:updated><title>Stop persistent networking interface assignment in cloned virtualbox</title><description>When a Ubuntu virtualbox is cloned the new box network interfaces will not come up as Ubuntu has added some MAC matching rules. To fix this on the machine that will be cloned, do this:&lt;br /&gt;&lt;br /&gt;Add:&lt;br /&gt;&lt;br /&gt;# ignore VirtualBox virtual interfaces&lt;br /&gt;ENV{MATCHADDR}=="08:00:27:*", GOTO="persistent_net_generator_end"&lt;br /&gt;&lt;br /&gt;to /lib/udev/rules.d/75-persistent-net-generator.rules&lt;br /&gt;&lt;br /&gt;and delete the file&lt;br /&gt;/etc/udev/rules.d/70-persistent-net.rules&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-2256117354835208324?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2012/02/stop-persistent-networking-interface.html</link><author>noreply@blogger.com (Neville Dastur)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-5395224633924197408</guid><pubDate>Wed, 14 Sep 2011 10:45:00 +0000</pubDate><atom:updated>2011-09-14T11:45:33.312+01:00</atom:updated><title>Tilda in Virtualbox Linux guest for OSX host</title><description>As much as I love my Mac, there are some really&amp;nbsp;annoying&amp;nbsp;things. One of which is the keyboard. Why Apple think a delete key is&amp;nbsp;unnecessary&amp;nbsp;only they know!&lt;br /&gt;&lt;br /&gt;Anyway, I run a Linux guest using VirtualBox on my Mac and regardless of which keyboard layout you choose the tilda key is not&amp;nbsp;accessible. The solution is to create a .xmodmaprc file in your home directory&lt;br /&gt;&lt;br /&gt;In that file add:&lt;br /&gt;!map tilda and grave&lt;br /&gt;keycode 94 = grave asciitilda&lt;br /&gt;&lt;br /&gt;Use the file by typing&lt;br /&gt;xmodmap ~/.xmodmaprc&lt;br /&gt;&lt;br /&gt;To make it stick you need to logout, login. A dialog will pop up asking if you want to load the xmodmaprc file. Move the file across and click okay&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-5395224633924197408?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2011/09/tilda-in-virtualbox-linux-guest-for-osx.html</link><author>noreply@blogger.com (Neville Dastur)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-1787961082223989561</guid><pubDate>Wed, 17 Aug 2011 11:57:00 +0000</pubDate><atom:updated>2011-08-17T12:57:52.629+01:00</atom:updated><title>Migrating a windows VM ware box to VirtualBox</title><description>Maybe I'm just blind but I couldn't find VM player for mac. Only a 30 day trial for VM fusion. Any way I got given a VMWare machine image that I needed to use and VirtualBox is my preferred desktop virtualisation solution.&lt;br /&gt;&lt;br /&gt;Migrating a Windows machine is a PITA because of the way windows does it's thing but VMWARE don't help either, because it is nearly impossible to remove VMware tools.&lt;br /&gt;&lt;br /&gt;Probably the best guide I found to migrating a windows box is http://www.kleinfelter.com/node/135. It also tackles how to get rid of VMWare tools. But unfortunately the you can't seem to get rid of the network drivers. So the article suggests switching to one of the Intel drivers. But of course you don't have network connectivity from the VM to download. So my little addition to this article is how to create your own ISO image with the drivers to load up into the VirtualBox VM.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;br /&gt;Download the Intel network drivers from the Intel site&lt;/li&gt; &lt;li&gt;Goto Applications -&amp;gt; Utilities -&amp;gt; Disk Utility&lt;/li&gt; &lt;li&gt;Click New Image&lt;/li&gt; &lt;li&gt;Select Partitions CD/DVD&lt;/li&gt; &lt;li&gt;and 100MB is more than enough space&lt;/li&gt; &lt;li&gt;Select a name for your CD "file"&lt;/li&gt; &lt;li&gt; This file will be mounted and can be found in Finder.&lt;/li&gt; &lt;li&gt;Copy the network driver download to it and eject&lt;/li&gt; &lt;/ul&gt;The problem now is making an ISO. I found that the convert function in Disk Utility didn't work. So you need to goto the terminal and type this: &lt;br /&gt;&lt;br /&gt;hdiutil makehybrid -iso -joliet -o [filename].iso [filename].cdr&lt;br /&gt;&lt;br /&gt;Voila you have an ISO you can attach to your virtualbox machine and install the Intel network drivers&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-1787961082223989561?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2011/08/migrating-windows-vm-ware-box-to.html</link><author>noreply@blogger.com (Neville Dastur)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-2015668381433589584</guid><pubDate>Mon, 09 May 2011 09:37:00 +0000</pubDate><atom:updated>2011-05-09T10:37:39.878+01:00</atom:updated><title>Reconnect Mac OSX bluetooth mouse with just the keyboard</title><description>&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;You might ask why you want to do this. Well it seems to be a common problem that the mac magic mouse keeps disconnecting at crucial moments and what ever you do it doesn't automatically re-connect. I wish apple would make the process of mouse disconnects "magical".&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Anyway, if this does happen to you and you don't fancy a reboot follow these steps.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Type Command and space to bring up spotlight&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Type mouse&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;In the list a item under the heading "System Preferences" called mouse should appear&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Use the down key to get to it and hit Enter&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;The searching for mouse dialog should appear.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;At this point turn the bluetooth mouse off and on. I think this puts the mouse in discovery mode&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;When found just hit Enter again&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Trebuchet MS', sans-serif;"&gt;Volia - you should have a connected mouse&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-2015668381433589584?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2011/05/reconnect-mac-osx-bluetooth-mouse-with.html</link><author>noreply@blogger.com (Neville Dastur)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-229720660479809878</guid><pubDate>Sun, 06 Feb 2011 12:56:00 +0000</pubDate><atom:updated>2011-02-06T12:58:31.145Z</atom:updated><title>Screencast capture on OSX using VLC</title><description>A nice post on howto use VLC to cpature the screen on OSX. I assume this will work on linux too.&lt;br /&gt;&lt;br /&gt;Just in case it disapears, the import bit is:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Open VLC as you would do normally&lt;/li&gt;&lt;li&gt;Window -&amp;gt; Errors and Warnings (this will warn you if encoding failed)&lt;/li&gt;&lt;li&gt;File -&amp;gt; Open Capture Device -&amp;gt; Screen&lt;/li&gt;&lt;li&gt;Try to limit the area You are recording by specifying Subscreen parameters – I didn’t have any luck with recording full screen&lt;/li&gt;&lt;li&gt;Tick: “Streaming/Saving”&lt;/li&gt;&lt;li&gt;Click on “Settings…”&lt;/li&gt;&lt;li&gt;Select “File”, click on Browse, select dir where you want to save the file and give it some name&lt;/li&gt;&lt;li&gt;Encapsulation Method: MPEG 4&lt;/li&gt;&lt;li&gt;Transcoding options: tick “Video” and select mp4, Bitrate 512&lt;/li&gt;&lt;li&gt;Untick “Audio” (just to test if it works without it)&lt;/li&gt;&lt;li&gt;Click “OK”&lt;/li&gt;&lt;li&gt;we are back to previous screen, click “Open”&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-229720660479809878?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2011/02/screencast-capture-on-osx-usinh-vlc.html</link><author>noreply@blogger.com (Neville Dastur)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-839979997812466757</guid><pubDate>Sun, 23 Jan 2011 21:55:00 +0000</pubDate><atom:updated>2011-01-23T21:55:23.938Z</atom:updated><title>Detecting Application Idle in Qt 4</title><description>&lt;p&gt;The Patient&amp;nbsp;Management&amp;nbsp;System we are writing required a timeout for logins after a certain period had elapsed. So we needed to detect application idle. A couple of examples exist on the the web, but seemed incomplete and not thread safe. I also wanted a singleton class model so that I could have notifications of idle in any of my QObjects. So here is my implementation. Comments and improvements will be appreciated.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Header File:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;#ifndef IDLETIMER_H&lt;br /&gt;#define IDLETIMER_H&lt;br /&gt;&lt;br /&gt;#include &amp;lt;qobject&amp;gt;&lt;br /&gt;#include &amp;lt;qmutex&amp;gt;&lt;br /&gt;#include &amp;lt;qevent&amp;gt;&lt;br /&gt;#include &amp;lt;qtimer&amp;gt;&lt;br /&gt;&lt;br /&gt;class IdleTimer : public QObject&lt;br /&gt;{&lt;br /&gt;Q_OBJECT&lt;br /&gt;public:&lt;br /&gt;// Singleton class stuff&lt;br /&gt;static IdleTimer* instance(QObject *parent=0, int seconds=0) {&lt;br /&gt;static QMutex mutex;&lt;br /&gt;if (!m_Instance) {&lt;br /&gt;mutex.lock();&lt;br /&gt;m_Instance = new IdleTimer(parent, seconds);&lt;br /&gt;mutex.unlock();&lt;br /&gt;}&lt;br /&gt;return m_Instance;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;static void drop() {&lt;br /&gt;qDebug("IdleTimer dropped ...");&lt;br /&gt;static QMutex mutex;&lt;br /&gt;mutex.lock();&lt;br /&gt;&lt;br /&gt;m_timer-&gt;stop();&lt;br /&gt;if(m_timer) delete m_timer;&lt;br /&gt;&lt;br /&gt;if (m_Instance)&lt;br /&gt;delete m_Instance;&lt;br /&gt;m_Instance = 0;&lt;br /&gt;mutex.unlock();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void start(int seconds = 0);&lt;br /&gt;void stop();&lt;br /&gt;&lt;br /&gt;private:&lt;br /&gt;explicit IdleTimer(QObject *parent, int seconds);&lt;br /&gt;explicit IdleTimer() {}&lt;br /&gt;~IdleTimer() {}&lt;br /&gt;&lt;br /&gt;IdleTimer(const IdleTimer &amp;); // hide copy constructor&lt;br /&gt;IdleTimer&amp; operator=(const IdleTimer &amp;); // hide assign op&lt;br /&gt;&lt;br /&gt;static IdleTimer *m_Instance;&lt;br /&gt;static QTimer *m_timer;&lt;br /&gt;&lt;br /&gt;static QMutex m_timeoutMutex;&lt;br /&gt;static int m_timeout;&lt;br /&gt;&lt;br /&gt;signals:&lt;br /&gt;void idle();&lt;br /&gt;&lt;br /&gt;private slots:&lt;br /&gt;void idleTimeout();&lt;br /&gt;&lt;br /&gt;protected:&lt;br /&gt;bool eventFilter(QObject *obj, QEvent *ev);&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;#endif // IDLETIMER_H&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;And the implementation&lt;/p&gt;&lt;br /&gt;&lt;pre&gt;/*!&lt;br /&gt;* Small class for detecting idle in the applcation&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;#include "IdleTimer.h"&lt;br /&gt;&lt;br /&gt;// Static initialisers&lt;br /&gt;IdleTimer *IdleTimer::m_Instance = 0;&lt;br /&gt;QTimer *IdleTimer::m_timer = new QTimer();&lt;br /&gt;int IdleTimer::m_timeout = 0;&lt;br /&gt;QMutex IdleTimer::m_timeoutMutex;&lt;br /&gt;&lt;br /&gt;/*!&lt;br /&gt;* Class constructor&lt;br /&gt;*/&lt;br /&gt;IdleTimer::IdleTimer(QObject *parent, int seconds) :&lt;br /&gt;QObject(parent)&lt;br /&gt;{&lt;br /&gt;m_timeoutMutex.lock();&lt;br /&gt;&lt;br /&gt;if (seconds)&lt;br /&gt;m_timeout = seconds;&lt;br /&gt;&lt;br /&gt;Q_ASSERT(parent);&lt;br /&gt;Q_ASSERT_X(m_timeout, "IdleTimer Constructor", "The timeout must be specified in the first call to instance.");&lt;br /&gt;&lt;br /&gt;parent-&gt;installEventFilter(this);&lt;br /&gt;m_timer-&gt;singleShot(m_timeout*1000, this, SLOT(idleTimeout()));&lt;br /&gt;&lt;br /&gt;m_timeoutMutex.unlock();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*!&lt;br /&gt;* Either reset the timeout to a different value to restart the timer&lt;br /&gt;*/&lt;br /&gt;void IdleTimer::start(int seconds/*=0*/) {&lt;br /&gt;m_timeoutMutex.lock();&lt;br /&gt;&lt;br /&gt;if(seconds)&lt;br /&gt;m_timeout = seconds;&lt;br /&gt;&lt;br /&gt;Q_ASSERT_X(m_timeout, "IdleTimer reset", "A timeout must be specified either in this call or in the first call to instance.");&lt;br /&gt;&lt;br /&gt;m_timer-&gt;start(m_timeout*1000);&lt;br /&gt;&lt;br /&gt;m_timeoutMutex.unlock();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;void IdleTimer::stop() {&lt;br /&gt;m_timeoutMutex.lock();&lt;br /&gt;m_timer-&gt;stop();&lt;br /&gt;m_timeoutMutex.unlock();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*!&lt;br /&gt;* The vent filter&lt;br /&gt;*/&lt;br /&gt;bool IdleTimer::eventFilter(QObject *obj, QEvent *ev)&lt;br /&gt;{&lt;br /&gt;if(ev-&gt;type() == QEvent::KeyPress ||&lt;br /&gt;ev-&gt;type() == QEvent::MouseMove)&lt;br /&gt;// now reset your timer, for example&lt;br /&gt;IdleTimer::m_timer-&gt;start();&lt;br /&gt;&lt;br /&gt;// Must return to allow further processing&lt;br /&gt;return QObject::eventFilter(obj, ev);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*slot*/&lt;br /&gt;void IdleTimer::idleTimeout() {&lt;br /&gt;qDebug("Application has been idle, emitting idle signal ...");&lt;br /&gt;emit idle();&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-839979997812466757?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2010/08/detecting-application-idle-in-qt-4.html</link><author>noreply@blogger.com (Neville Dastur)</author><thr:total>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-4054072465307760641</guid><pubDate>Fri, 24 Dec 2010 22:44:00 +0000</pubDate><atom:updated>2010-12-24T22:46:52.402Z</atom:updated><title>SpiderOak Backup</title><description>I have been using SpiderOak for my offline back up solution for some time now. The main advantage I have found is that you don't need a separate folder like in Dropbox and the synchronisation feature works really well. So I currently have three computers all sync'ing wonderfully with each other. Anyway, there is now a referral programme and so I thought I would take advantage. If you use this link you get the standard 2GB + another 1GB free for life.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://spideroak.com/download/referral/b522e08c9d1388fdaf011330cf2c4ccf"&gt;Download SpiderOak Backup and get extra 1GB free&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?t=surgnet-21&amp;o=1&amp;p=8&amp;l=bpl&amp;asins=B002QEBMB4&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr" style="align:right;padding-top:5px;width:131px;height:245px;padding-right:10px;"align="right" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-4054072465307760641?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2010/12/spideroak-backup.html</link><author>noreply@blogger.com (Neville Dastur)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-4452184736278448308</guid><pubDate>Wed, 21 Apr 2010 22:10:00 +0000</pubDate><atom:updated>2010-04-21T23:39:22.205+01:00</atom:updated><title>Mounting virtualbox shares in a linux (Ubuntu) guest</title><description>Mounting VirtualBox shares in a Linux guest is not as straight forward as for a Windows guest. I have only tried this on a Ubuntu guest but I see no reason why it wouldn't work in other flavours.&lt;br /&gt;&lt;br /&gt;Some pre-requisites:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Make sure the VirtualBox guest additions have been installed. There are plenty of guides about this&lt;/li&gt;&lt;li&gt;When you create your shared directories DO NOT accept the default name. Use a prefix. For example HostDocuments for the host Documents folders instead of Documents.&lt;br /&gt;The reason for this is if you use the default name a protocol error will be reported when you mount the shared dir. I don't know why but this small work around fixes the issue&lt;/li&gt;&lt;li&gt;Make sure the vboxvfs module is loaded by adding vboxvfs to the end of /etc/modules&lt;br /&gt;&lt;br /&gt;&lt;code&gt;sudo sh -c 'echo "vboxvfs" | cat &amp;gt;&amp;gt;/etc/modules'&lt;/code&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;Now we need to allow mounting of vbox shares by normal users.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;code&gt;sudo select-editor&lt;/code&gt; and make sure nano is selected. This is a much nicer editor than vi&lt;/li&gt;&lt;li&gt;Now edit the sudoer file using &lt;code&gt;sudo visudo&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;Add the line: &lt;code&gt;%plugdev ALL=(ALL)NOPASSWD:/sbin/mount.vboxsf&lt;/code&gt;&lt;br /&gt;It may be that the group plugdev is a Ubuntu only group. Choose a group that all users belong to. Or create a 'users' group and add the users to it&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Create a mounting script in /usr/local/bin.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;sudo nano /usr/local/bin/mountVboxShares&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Paste the following code, but replace the variables at the top and add sections as appropriate.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;PROJECTDIR="$HOME"/Projects&lt;br /&gt;PROJECTSHARE="HostProjects"&lt;br /&gt;&lt;br /&gt;DOCSDIR="$HOME"/Documents&lt;br /&gt;DOCSSHARE="HostDocuments"&lt;br /&gt;&lt;br /&gt;if [ ! -d "$PROJECTDIR" ]; then&lt;br /&gt;mkdir "$PROJECTDIR"&lt;br /&gt;fi&lt;br /&gt;/usr/bin/sudo mount.vboxsf -o uid=`id -r -u`,gid=`id -r -u` "$PROJECTSHARE" "$PROJECTDIR"&lt;br /&gt;&lt;br /&gt;if [ ! -d "$DOCSDIR" ]; then&lt;br /&gt;mkdir "$DOCSDIR"&lt;br /&gt;fi&lt;br /&gt;/usr/bin/sudo mount.vboxsf -o uid=`id -r -u`,gid=`id -r -u` "$DOCSSHARE" "$DOCSDIR"&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Allow everyone to execute this script &lt;code&gt;sudo chmod 755 /usr/local/bin/mountVboxShares&lt;/code&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Finally add the mount script to the end of the system wide profile script &lt;code&gt;sudo sh -c 'echo "/usr/local/bin/mountVboxShares" | cat &amp;gt;&amp;gt;/etc/profile'&lt;/code&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-4452184736278448308?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2010/04/mounting-virtualbox-shares-in-linux.html</link><author>noreply@blogger.com (Neville Dastur)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-3225365454677827101</guid><pubDate>Mon, 01 Mar 2010 19:10:00 +0000</pubDate><atom:updated>2010-03-01T22:47:02.608Z</atom:updated><title>Converting Joomla sites from 1.0 to 1.5 cheatsheet</title><description>Some useful links for Joomla 1.5 component development:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The guys at the Art of Joomla have a really nice crib sheet for &lt;a href="http://www.theartofjoomla.com/converting-old-extensions.html"&gt;converting your 1.0 extensions to 1.5&lt;/a&gt;. Well done and thank you.&lt;/li&gt;&lt;li&gt;Using the &lt;a href="http://www.howtojoomla.net/how-tos/development/how-to-create-select-lists-in-joomla"&gt;JHTML:: functions to create lists&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-3225365454677827101?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2010/03/converting-joomla-sites-from-10-to-15.html</link><author>noreply@blogger.com (Neville Dastur)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-6256538435896874720</guid><pubDate>Mon, 08 Feb 2010 15:02:00 +0000</pubDate><atom:updated>2010-02-08T15:03:24.151Z</atom:updated><title>Ubutnu ext3 to ext4 upgrade - won't mount filesystem!</title><description>I have just had a little heart stop moment.&lt;br /&gt;&lt;br /&gt;I followed the Ubuntu wiki instructions on &lt;a href="https://help.ubuntu.com/community/ConvertFilesystemToExt4"&gt;migrating from ext3 to ext4&lt;/a&gt;. After the tune2fs bit I rebooted as instructed and the system could not mount the new filesystem. Errors about bad superblocks and bad group descriptors, but nothing being done about them. fsck did not run correctly and I was left with an un-mountable drive, so I could even mount as ext3. Ahhhh....&lt;br /&gt;&lt;br /&gt;Fortunately I have a live CD install of 9.10 on USB from which I could boot and run a fsck.ext4 on my partition.&lt;br /&gt;&lt;br /&gt;So my suggestion is that before migrating from ext3 to ext4 do two things:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;BACKUP all your data&lt;/li&gt;&lt;li&gt;Do the migration from a live CD / USB. The advantage of this is that you save on all the reboots too.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-6256538435896874720?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2010/02/ubutnu-ext3-to-ext4-upgrade-wont-mount.html</link><author>noreply@blogger.com (Neville Dastur)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-9156101215147527367</guid><pubDate>Wed, 07 Oct 2009 19:30:00 +0000</pubDate><atom:updated>2009-10-17T23:17:15.440+01:00</atom:updated><title>Setting up qt4 with visual studio 2005 and 2008</title><description>It is not clear (or wasn't to me) how to use &lt;a href="http://www.blogger.com/"&gt;QT4&lt;/a&gt; with Visual Studio. The key to the problem is that you need to re-compile QT4 for Visual Studio. If you are not using MingGW at all then you can do all this in the original QT directory. Otherwise copy the entire c:\qt\2009.03 directory to something like c:\qt\2009.03_vs2008&lt;br /&gt;&lt;br /&gt;Open a VS command line prompt so that all the env vars are set up.&lt;br /&gt;&lt;br /&gt;Run the configure script, my suggestion is:&lt;br /&gt;C:\Qt\2009.03\qt&amp;gt;configure -no-qt3support -no-opengl -platform win32-msvc2005 -no-libtiff -no-dbus -no-phonon -no-phonon-backend -opensource -debug-and-release&lt;br /&gt;&lt;br /&gt;Let it do it's thing&lt;br /&gt;&lt;br /&gt;Then type nmake to build the VS libraries&lt;br /&gt;&lt;br /&gt;Notes:&lt;br /&gt;Use nmake confclean to clean the directory before running a new configure cmd&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-9156101215147527367?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2009/10/setting-up-qt4-with-visual-studio-2005.html</link><author>noreply@blogger.com (Neville Dastur)</author><thr:total>2</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-5851880164347203267</guid><pubDate>Tue, 29 Sep 2009 22:57:00 +0000</pubDate><atom:updated>2009-09-29T23:57:44.795+01:00</atom:updated><title>Setting up PostgresSQL on Ubuntu</title><description>Most of my database use has been with MySQL to date as I have LAMP installations for websites but I was looking for a DB to use with a new desktop application of ours. It seems that Postgres may be a better option. Below are the steps I needed to get a Postgres server running on my laptop.&lt;br /&gt;&lt;br /&gt;1) Install the packages&lt;br /&gt;# sudo apt-get install postgresql postgresql-client pgadmin3&lt;br /&gt;&lt;br /&gt;This will install the latest versions, which for ubuntu 9.04 at this time is 8.3 if an older version installs then change the references to directories below as appropriate.&lt;br /&gt;&lt;br /&gt;2) Change the admin passwords&lt;br /&gt;&lt;br /&gt;# sudo -u postgres psql template1&lt;br /&gt;This will start up the command line admin tool and select the template1 db which seems to be where postgre stores user credentials&lt;br /&gt;&lt;br /&gt;# ALTER USER postgres WITH PASSWORD 'new password';&lt;br /&gt;and quit by typing \q&lt;br /&gt;&lt;br /&gt;3) Change the ubuntu postgres user password. This is a conveinence step as all the conf files are created with postgres user and group. You could add or edit them as root with sudo and then make sure they are all chown to postgres:postgres&lt;br /&gt;&lt;br /&gt;# sudo passwd -d postgres&lt;br /&gt;Will delete the current postgres password (needed otherwise you are asked for it in the next step)&lt;br /&gt;# sudo su postgres -c passwd&lt;br /&gt;Enter a new password. For simplicity use the same password as the admin user above, but can be anything so long as you remember it&lt;br /&gt;&lt;br /&gt;Restart the server with&lt;br /&gt;# sudo /etc/init.d/postgresql-8.3 restart&lt;br /&gt;&lt;br /&gt;You can now use the pgAdmin tool to connect to the DB&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-5851880164347203267?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2009/09/setting-up-postgressql-on-ubuntu.html</link><author>noreply@blogger.com (Neville Dastur)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-1903072533853799538</guid><pubDate>Wed, 02 Sep 2009 18:53:00 +0000</pubDate><atom:updated>2009-09-02T21:07:43.127+01:00</atom:updated><category domain='http://www.blogger.com/atom/ns#'>surgical training</category><category domain='http://www.blogger.com/atom/ns#'>tutorials</category><title>Additions to the Surgical Tutorials</title><description>I have been making some additions to the Surgical Tutorials section of the website. Four topics added are:&lt;br /&gt;&lt;ul class="latestnewsS2"&gt;&lt;li class="latestnewsS2"&gt;   &lt;a href="http://www.surgeons.org.uk/general-surgery-tutorials/meckels-diverticulum.html" class="latestnewsS2"&gt;    Meckel's Diverticulum&lt;/a&gt;  &lt;/li&gt;&lt;li class="latestnewsS2"&gt;   &lt;a href="http://www.surgeons.org.uk/general-surgery-tutorials/bed-sores.html" class="latestnewsS2"&gt;    Bed Sores&lt;/a&gt;  &lt;/li&gt;&lt;li class="latestnewsS2"&gt;   &lt;a href="http://www.surgeons.org.uk/advanced-trauma-life-support/airway-and-ventilatory-management.html" class="latestnewsS2"&gt;    Airway and Ventilatory Management&lt;/a&gt;  &lt;/li&gt;&lt;li class="latestnewsS2"&gt;   &lt;a href="http://www.surgeons.org.uk/breast-surgery-and-endocrine/thyroid-malignancy.html" class="latestnewsS2"&gt;    Thyroid Malignancy&lt;/a&gt;  &lt;/li&gt;&lt;/ul&gt;The &lt;a href="http://www.surgeons.org.uk/advanced-trauma-life-support/airway-and-ventilatory-management.html" class="latestnewsS2"&gt;Airway and Ventilatory Management&lt;/a&gt; is part of a new ATLS notes section and hopefully the other tutorials will also provide for useful revision notes.&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-1903072533853799538?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2009/09/additions-to-surgical-tutorials.html</link><author>noreply@blogger.com (Neville Dastur)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-1963674362891494388</guid><pubDate>Sun, 16 Aug 2009 11:56:00 +0000</pubDate><atom:updated>2009-08-16T13:03:55.676+01:00</atom:updated><title>EWTD 48 hour opt out survey</title><description>We have been running a short &lt;a href="http://surveys.surgeons.org.uk/index.php?sid=26372"&gt;EWTD survey&lt;/a&gt; on the &lt;a href="http://www.surgeons.org.uk/"&gt;Surgeons Net&lt;/a&gt; site about the 48 hour EWTD week and opting out. If you haven't completed the survey then please contribute. But do note that ASiT and BOTA are going to be conducting a more detailed, longer survey in September.&lt;br /&gt;&lt;br /&gt;If you are interested in the &lt;a href="http://surveys.surgeons.org.uk/results.php?sid=26372"&gt;results then they are available live on line too&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-1963674362891494388?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2009/08/ewtd-48-hour-opt-out-survey.html</link><author>noreply@blogger.com (Neville Dastur)</author><thr:total>1</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-5994494134104595367</guid><pubDate>Sun, 25 Jan 2009 12:22:00 +0000</pubDate><atom:updated>2009-01-25T12:31:33.261Z</atom:updated><title>Target Google AdSense even more by rating your content</title><description>&lt;span class="txtplain1"&gt;&lt;p&gt;There is a nice article on &lt;a href="http://tools.devshed.com/c/a/Website-Advertising/Get-More-Out-of-AdSense/"&gt;AdSense&lt;/a&gt; published recently on DevShed. For my own note I had no idea you could direct what content you wanted Google to concentrate on for displaying relevant ads.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;Put the main content inside these comment tags&lt;/b&gt;:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="txtplain1"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&amp;lt;!-- google_ad_section_start --&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;/span&gt;&lt;p&gt;&lt;span class="txtplain1"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&amp;lt;!-- google_ad_section_end --&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="font-weight: bold;"&gt;&lt;span class="txtplain1"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;And things you want ignored inside:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="txtplain1"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&amp;lt;!-- google_ad_section_start(weight=ignore) --&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span class="txtplain1"&gt;&lt;span style="font-family:Courier New,monospace;"&gt;&amp;lt;!-- google_ad_section_end --&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-5994494134104595367?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2009/01/there-is-nice-article-on-adsense.html</link><author>noreply@blogger.com (Neville Dastur)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-7969699379756633174</guid><pubDate>Mon, 17 Nov 2008 22:59:00 +0000</pubDate><atom:updated>2008-11-17T23:03:07.424Z</atom:updated><title>Firefox 3 sesson restore</title><description>Not sure why but firefox seemed to lose it's session restore feature for me. Maybe something to do with having tab mix plus installed prior to the 2 -&gt; 3 upgrade.&lt;br /&gt;&lt;br /&gt;Anyhow here is how to restore session saving.&lt;br /&gt;&lt;br /&gt;Enter about:config in the address bar and say yes to the behave yourself warning!&lt;br /&gt;&lt;br /&gt;Search down for "browser.sessionstore.resume_session_once" and change the setting to true.&lt;br /&gt;&lt;br /&gt;and restart ...&lt;br /&gt;&lt;br /&gt;That's it.&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-7969699379756633174?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2008/11/firefox-3-sesson-restore.html</link><author>noreply@blogger.com (Neville Dastur)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-7994616242383176006</guid><pubDate>Wed, 04 Jun 2008 12:49:00 +0000</pubDate><atom:updated>2008-06-04T13:56:32.541+01:00</atom:updated><title>Clamav with Qmail-Scanner</title><description>Probably the best article on getting clamav to work with Qmail Scanner&lt;br /&gt;&lt;br /&gt;&lt;a href="http://qmail.jms1.net/clamav/qmail-scanner.shtml"&gt;http://qmail.jms1.net/clamav/qmail-scanner.shtml&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-7994616242383176006?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2008/06/clamav-with-qmail-scanner.html</link><author>noreply@blogger.com (Neville Dastur)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-3161282695277474740</guid><pubDate>Mon, 02 Jun 2008 07:54:00 +0000</pubDate><atom:updated>2008-06-02T08:58:55.182+01:00</atom:updated><title>WEBSITES DOWN DUE TO FIRE AT SERVER HOST</title><description>Unfortunately there has been an fire at the main data center where our servers are hosted and hence the websites and email are down.&lt;br /&gt;&lt;br /&gt;The server company are expecting to starting bringing servers back online this evening, but it may be tomorrow morning before the network is fully restored.&lt;br /&gt;&lt;br /&gt;Thank you for your patience.&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-3161282695277474740?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2008/06/websites-down-due-to-fire-at-server.html</link><author>noreply@blogger.com (Neville Dastur)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-9078274850939772486</guid><pubDate>Sat, 26 Apr 2008 19:21:00 +0000</pubDate><atom:updated>2008-04-26T20:22:06.328+01:00</atom:updated><title>Just a reminder of a great x-platform SVN client</title><description>&lt;a href="http://rapidsvn.tigris.org/"&gt;http://rapidsvn.tigris.org/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-9078274850939772486?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2008/04/just-reminder-of-great-x-platform-svn.html</link><author>noreply@blogger.com (Neville Dastur)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-3759114404926734146</guid><pubDate>Thu, 21 Feb 2008 23:48:00 +0000</pubDate><atom:updated>2008-02-22T00:01:21.443Z</atom:updated><title>Setting up a subversion server Redhat CentOS</title><description>First some useful reference links:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.tgharold.com/techblog/labels/SubVersion.shtml"&gt;http://www.tgharold.com/techblog/labels/SubVersion.shtml&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.daniel-skinner.co.uk/setup-subversion-and-trac-on-centos-5/06/01/2008"&gt;http://www.daniel-skinner.co.uk/setup-subversion-and-trac-on-centos-5/06/01/2008&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.subversionary.org/howto/setting-up-a-server-on-fedora-core-4"&gt;http://www.subversionary.org/howto/setting-up-a-server-on-fedora-core-4&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-3759114404926734146?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2008/02/setting-up-subversion-server-redhat.html</link><author>noreply@blogger.com (Neville Dastur)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-5493008635488166307</guid><pubDate>Sun, 17 Feb 2008 20:03:00 +0000</pubDate><atom:updated>2008-02-17T20:06:31.153Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>permissions</category><category domain='http://www.blogger.com/atom/ns#'>linux</category><category domain='http://www.blogger.com/atom/ns#'>plesk</category><title>A Script to do the plesk directory permisson setup</title><description>I have previously posted about changes to the plesk httpdocs directory to get it to work well with Joomla. This is a little bash script I knocked up to do the job. Just pass the username as param 1&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;# First check that this is a valid username&lt;br /&gt;grep "^${1}:" /etc/passwd &gt; /dev/null 2&gt;&amp;1&lt;br /&gt;if [ "$?" -ne "0" ]; then&lt;br /&gt;  echo "Sorry, cannot find user ${1} in /etc/passwd or you didn't supply a username"&lt;br /&gt;  echo "Usage: ${0} &lt;username&gt;"&lt;br /&gt;&lt;br /&gt;  exit 1&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;userdir=`grep "^${1}:" /etc/passwd | cut -d: -f6`&lt;br /&gt;&lt;br /&gt;if [ -d ${userdir} ] ; then&lt;br /&gt; echo "Changing to directory ${userdir}"&lt;br /&gt; cd ${userdir} &amp;&amp; chown -R ${1}:psacln httpdocs &amp;&amp; chmod -R g+w httpdocs &amp;&amp; find httpdocs -type d -exec chmod g+s {} \; &amp;&amp; /etc/init.d/httpd reload&lt;br /&gt;fi&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-5493008635488166307?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2008/02/script-to-do-plesk-directory-permisson_17.html</link><author>noreply@blogger.com (Neville Dastur)</author><thr:total>0</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-3644490552852815581</guid><pubDate>Sat, 16 Feb 2008 16:00:00 +0000</pubDate><atom:updated>2008-02-17T04:07:58.618Z</atom:updated><category domain='http://www.blogger.com/atom/ns#'>logwatch</category><category domain='http://www.blogger.com/atom/ns#'>plesk</category><category domain='http://www.blogger.com/atom/ns#'>virtual host</category><category domain='http://www.blogger.com/atom/ns#'>apache</category><title>Monitoring all apache virtual hosts on plesk with logwatch</title><description>The standard Plesk install has logwatch setup to just monitor the default httpd log, i.e /var/www/httpd/*&lt;br /&gt;&lt;br /&gt;This is miss most things as the log file output of all the virtual hosts are not parsed. So I made a little bash script to create a load of new logwatch conf files to parse all my virtual host logfiles too. You will need to run this script each time a new domain is created. A know there is a Plesk way to run custom scripts on events, but I'll leave that for another day.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;##&lt;br /&gt;## Script to create conf files and script links on a Plesk&lt;br /&gt;## server that monitor all the apache log files &lt;br /&gt;##&lt;br /&gt;## Visit blog.surgeons.org.uk for updates&lt;br /&gt;&lt;br /&gt;## Location of the virtual hosts directories&lt;br /&gt;vhost_root=/var/www/vhosts/&lt;br /&gt;&lt;br /&gt;## Various logwatch directories&lt;br /&gt;dir_services="/etc/logwatch/conf/services"&lt;br /&gt;dir_logfiles="/etc/logwatch/conf/logfiles"&lt;br /&gt;dir_scripts="/etc/logwatch/scripts/services"&lt;br /&gt;http_script="/usr/share/logwatch/scripts/services/http"&lt;br /&gt;&lt;br /&gt;## Now iter over each directory&lt;br /&gt;for domain in $( ls -Ichroot -Idefault $vhost_root ); do&lt;br /&gt;if [ -d "${vhost_root}${domain}" ]&lt;br /&gt;then&lt;br /&gt; echo "Making services logwatch enteries for ${domain}"&lt;br /&gt; domain_us=`echo $domain | tr . _`&lt;br /&gt; (&lt;br /&gt; cat &lt;&lt;-END_OF_SERVICES_CONF        &lt;br /&gt;&lt;br /&gt;###########################################################################&lt;br /&gt;# Configuration file for $domain http filter         &lt;br /&gt;# See blog.surgeons.org.uk for updates         ###########################################################################&lt;br /&gt;Title = "httpd - $domain"&lt;br /&gt;&lt;br /&gt;# Which logfile group...&lt;br /&gt;LogFile = http_$domain_us&lt;br /&gt;END_OF_SERVICES_CONF ) &gt; ${dir_services}/http_${domain_us}.conf&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; echo "Making logfiles logwatch entries for ${domain}"&lt;br /&gt; (&lt;br /&gt; cat &lt;&lt;-END_OF_LOGFILES_CONF&lt;br /&gt;########################################################&lt;br /&gt;#   Define log file group for http_$domain_us&lt;br /&gt;#   See blog.surgeons.org.uk for updates&lt;br /&gt;#######################################################&lt;br /&gt;LogFile = /var/www/vhosts/$domain/statistics/logs/access_log&lt;br /&gt;LogFile = /var/www/vhosts/$domain/statistics/logs/access_log.processed&lt;br /&gt;LogFile = /var/www/vhosts/$domain/statistics/logs/access_ssl_log&lt;br /&gt;LogFile = /var/www/vhosts/$domain/statistics/logs/access_ssl_log.processed&lt;br /&gt;&lt;br /&gt;# If the archives are searched, here is one or more line&lt;br /&gt;# (optionally containing wildcards) that tell where they are...&lt;br /&gt;# If you use a "-" in naming add that as well -mgt&lt;br /&gt;&lt;br /&gt;Archive = /var/www/vhosts/$domain/statistics/logs/access_log.processed.?.gz&lt;br /&gt;Archive = /var/www/vhosts/$domain/statistics/logs/access_ssl__log.processed.?.gz         &lt;br /&gt;&lt;br /&gt;# Expand the repeats (actually just removes them now)&lt;br /&gt;*ExpandRepeats&lt;br /&gt;&lt;br /&gt;# Keep only the lines in the proper date range...&lt;br /&gt;*ApplyhttpDate&lt;br /&gt;END_OF_LOGFILES_CONF ) &gt; ${dir_logfiles}/http_${domain_us}.conf&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;## Make the script links&lt;br /&gt;echo "Creating script link for ${domain}"&lt;br /&gt;ln -s ${http_script} ${dir_scripts}/http_${domain_us}&lt;br /&gt;&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-3644490552852815581?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2008/02/monitoring-all-virtual-hosts-on-plesk.html</link><author>noreply@blogger.com (Neville Dastur)</author><thr:total>4</thr:total></item><item><guid isPermaLink='false'>tag:blogger.com,1999:blog-4775033873078313696.post-6680168380731211798</guid><pubDate>Fri, 15 Feb 2008 15:57:00 +0000</pubDate><atom:updated>2008-02-15T15:59:41.147Z</atom:updated><title>Suhosin PHP hardening</title><description>A PHP hardening (security patch) worth checking out&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.hardened-php.net/suhosin/index.html"&gt;http://www.hardened-php.net/suhosin/index.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;--
Surgeons Net Education
&lt;a href="http://www.surgeons.org.uk"&gt;www.surgeons.org.uk&lt;/a&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4775033873078313696-6680168380731211798?l=blog.surgeons.org.uk' alt='' /&gt;&lt;/div&gt;</description><link>http://blog.surgeons.org.uk/2008/02/suhosin-php-hardening.html</link><author>noreply@blogger.com (Neville Dastur)</author><thr:total>0</thr:total></item></channel></rss>
