<?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-5548378134220649958</id><updated>2012-02-16T18:04:44.089-08:00</updated><category term='Oracle SMP Chronos Firefox Mozilla'/><category term='dokuwiki php blog'/><category term='Dokuwiki RSS SimplePie PHP authentication'/><category term='single use passwords authentication fobs smart cards'/><category term='sandstrom currys keyboard SGKBW10KB'/><category term='Dokuwiki RSS SimplePie PHP'/><category term='Mill Motors used car paisley'/><category term='Is it any wonder......?'/><category term='Redhat sendmail mailq links'/><category term='Microsoft non-compliant HTTP optimization'/><category term='phorm data protection rbs directgov axa privacy'/><category term='newbies internet guru forum programming'/><category term='php callgraph graphviz phpclasses.org'/><category term='PHP long running process posix background shell'/><category term='Blackberry Vodafone Support Bluetooth Linux'/><title type='text'>Argh!</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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>31</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5548378134220649958.post-7859756540244932946</id><published>2011-10-09T14:49:00.000-07:00</published><updated>2011-10-09T14:55:20.469-07:00</updated><title type='text'>Data quality vendor not interested in data quality?</title><content type='html'>&lt;a href="http://www.cifas.org.uk/"&gt;CIFAS&lt;/a&gt; should be all things to all people. They provide a platform for members to share data about fraudulent transactions - and provide ways of protecting individuals against identity theft. All wrapped in a not-for-profit organisation.&lt;br /&gt;&lt;br /&gt;But dig below the surface and all is not as it seems.&lt;br /&gt;&lt;br /&gt;Part of the facilities they provide is protective registration. This means that either at your request or the request of a CIFAS member, they will place a notice on you credit records saying that when a credit application is made in your name or from your address, then there should be additional checks on the identity of the party applying.&lt;br /&gt;&lt;br /&gt;This helps with the big problem of identity fraud; regaining control of an identity and preventing further abuse.&lt;br /&gt;&lt;br /&gt;However go and have a Google for them. There seems to be an awful lot of people out there who are not being protected - they are being prevented from obtaining credit due to a CIFAS listing. So at best, CIFAS have failed to communicate what their policy is to their members.&lt;br /&gt;&lt;br /&gt;But suppose you find yourself unfairly blacklisted by CIFAS. How do you go about correcting this? Surely CIFAS, who generate income from providing accurate information would not only take an active interest in resolving individual cases, but would also seek to monitor the reputation of their members' recommendations? Indeed according to the Data Protection Registrar, that is what &lt;a href="http://www.ico.gov.uk/Global/faqs/data_protection_for_organisations.aspx#fEE1DA2D7-E3B1-4C37-A4E5-09709D99B81B"&gt;they are obliged to do&lt;/a&gt;, regardless of their business model.&lt;br /&gt;&lt;br /&gt;However according to the CIFAS website, issues regarding innappropriate/innaccurate registrations must be directed to the member company and ”&lt;a href="http://www.cifas.org.uk/dispute_a_warning_can_I_get_it_amended_removed"&gt;CIFAS will not become involved&lt;/a&gt; in a dispute until the CIFAS Member has issued a Final Response letter.”&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-7859756540244932946?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/7859756540244932946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2011/10/data-quality-vendor-not-interested-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/7859756540244932946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/7859756540244932946'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2011/10/data-quality-vendor-not-interested-in.html' title='Data quality vendor not interested in data quality?'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-7688707614856212135</id><published>2011-03-04T15:55:00.000-08:00</published><updated>2011-03-04T16:10:45.725-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='phorm data protection rbs directgov axa privacy'/><title type='text'>UK Government website privacy abuse?</title><content type='html'>Anyone who knows me will not be surprised to hear that I think measuring user-experience and how users interact with your website is a very good idea. If you're in the business of trying to collect or analyse this information, then this post is addressed to you.&lt;br /&gt;&lt;br /&gt;As I've often said, looking at the standard server-side logs can be very informative - but its only half the story. To get a better picture you need to go client-side. And that means Javascript. For many people / organisations, there just isn't the time or money to develop your own solution - and of course there are no end of vendors trying to flog their wares to you.&lt;br /&gt;&lt;br /&gt;This post was prompted by a wasted hour investigating unusual patterns in referer stats. Where I work, phishing poses a very serious risk. Despite this, (and a large IT staff, dedicated security team. and an annual turnover well into the billions) there are no SPF records in our published  DNS records! The referer stats for out customer facing website shows our logos appearing in lots of web-based email readers (including those from service providers who are known to validate SPF) - implying that it is more than just a risk. The is a shocking and absurd set of circumstances which I am still trying to resolve after 2 years.&lt;br /&gt;&lt;br /&gt;However, that's not what this gripe is about.&lt;br /&gt;&lt;br /&gt;This week I noticed a few referals from a very long URL starting with xxxxx.stcllctrs.com (where xxxxxx is the name of my employers parent organisation). The URL was not obviously an email reader. Dropping the URL  into a browser returned a 200 response with no content. So I had a look at  the root URL, http://xxxxx.stcllctrs.com/ Where I found the documentation for 'jsunpack' (http://jsunpack.jeek.org/dec/go) a tool 'designed for security researchers and computer professionals'. This is primarily a javascript code obfuscator. Interestingly, the URL for jsunpack seems to link to a form allowing people to report possible abuses of the tool -  which has a record of its use at http://xxxxx.stcllctrs.com/ flagged as suspicious.&lt;br /&gt;&lt;br /&gt;I then Googled for xxxxx.stcllctrs.com and found that our parents organisation had several references to this site, loading javascript files and NOSCRIPT content. Looking at the Javascript it was serving up, it was rather difficult to read (since it was obfuscated) but seemed to be doing strange things with cookies. The domain also apepars in several ad blocking lists. Alarm bells started ringing!&lt;br /&gt;&lt;br /&gt;Of course my employers make up for the quality of the security policy with the quantity of it - so I couldn't do proper whois lookup - but looking at tools on the web - this turned out to be a 16 bit subnet owned by Savvis.net. The name is registered with viatel.com. So both the netblock  and DNS registration are effectively anonymous.&lt;br /&gt;&lt;br /&gt;Obfuscated code, unusual URLs, cookie manipulation, anonymous hosting, greyware listings - DING DING DING!!!&lt;br /&gt;&lt;br /&gt;Most of the whois services available online are provided by companies trying to sell registration services- the one I used initially did not provide any information about the registrant (and reformatted the content  significantly so it looked like viatel was the registrant). But I eventually found another site (in Romania of all places!) which gave the registrant contact - speed-trap.com limited. This proved to be the Rosetta stone to unravelling what was really going on.&lt;br /&gt;&lt;br /&gt;Speed-Trap appear to be a legitimate organisation providing web-usage monitoring services to companies. Surprisingly, they have a number of very high profile customers including direct.gov.uk, RBS, Axa and others. Yet they behave online like a script-kiddy - obfuscating their identity as well as code deployed to run in my browser, leaving other peoples hacking code&lt;br /&gt;on their own website.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.direct.gov.uk/en/SiteInformation/DG_020456"&gt;DirectGov have a link to their privacy policy &lt;/a&gt;on each and every page in their site (for the benefit of those from the colonies - DirectGov is the single, open access portal spanning all central government services in the UK). They clearly state they use javascript and cookies to record and analyse your usage of the site. They do not state that this information is processed by a third party. Indeed they go to unusual lengths to suggest that this information would only be shared with other bodies in extreme circumstances. &lt;a href="http://www.rbs.co.uk/global/f/privacy.ashx"&gt;RBS&lt;/a&gt; and http://www.axa.co.uk/privacy take a similar tack.&lt;br /&gt;&lt;br /&gt;http://www.direct.gov.uk/en/SiteInformation/DG_020456&lt;br /&gt;http://www.rbs.co.uk/global/f/privacy.ashx&lt;br /&gt;http://www.axa.co.uk/privacy&lt;br /&gt;&lt;br /&gt;From https://www.dephormation.org.uk/&lt;br /&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;"Intercepting, monitoring, eavesdropping, tapping communications requires  &lt;/span&gt;&lt;span style="color: rgb(102, 51, 255);"&gt;legal authority, or consent from both parties to the communication."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Although there are some differences to BTs Phorm rollout (in that case, it was clear that Phorm were using the information for other purposes than just usage analysis) I find it very worrying that the UK government and several large financial institutions should be misleading their customers (or citizens) like this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-7688707614856212135?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/7688707614856212135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2011/03/uk-government-website-privacy-abuse.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/7688707614856212135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/7688707614856212135'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2011/03/uk-government-website-privacy-abuse.html' title='UK Government website privacy abuse?'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-4645581373690999868</id><published>2011-02-04T16:42:00.000-08:00</published><updated>2011-02-04T16:54:17.850-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php callgraph graphviz phpclasses.org'/><title type='text'>Crappy code</title><content type='html'>I spend &lt;span style="font-style: italic;"&gt;way&lt;/span&gt; too much time dealing with other peoples' crappy code. To that end, a very long time ago, I wrote a quick script that would help me navigate around a PHP source file in order to work out what it's supposed to, and what it actually does.&lt;br /&gt;&lt;br /&gt;It generates a call graph of the functions and methods in a PHP file, example shown below.&lt;br /&gt;&lt;br /&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 171px;" src="http://3.bp.blogspot.com/_aAKhVADjR0s/TUyeNZJb4bI/AAAAAAAAAAM/7wO8ZUeUBbM/s320/ee9ca113fa2cbd9454eba118af591732.jpg" alt="" id="BLOGGER_PHOTO_ID_5570000792076411314" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;It had been sitting, festering on my HD for a while, and I thought "Hey, maybe someone else might find this helpful" so I uploaded it to phpclasses.org  &lt;br /&gt;&lt;br /&gt;So blow me, not only do they find it useful - but they want me to support the damn thing too! And then I get nominated for an award! I had a quick look at the source code. OMG - it's a mess! &lt;br /&gt;&lt;br /&gt;So a couple of late nights were spent cleaning it up until the API is at least usable.&lt;br /&gt;&lt;br /&gt;You can get the (cleaned up, slightly) source code &lt;a href="http://www.phpclasses.org/package/6688-PHP-Generate-call-graphs-of-PHP-code-with-GraphViz.html"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-4645581373690999868?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/4645581373690999868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2011/02/crappy-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/4645581373690999868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/4645581373690999868'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2011/02/crappy-code.html' title='Crappy code'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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://3.bp.blogspot.com/_aAKhVADjR0s/TUyeNZJb4bI/AAAAAAAAAAM/7wO8ZUeUBbM/s72-c/ee9ca113fa2cbd9454eba118af591732.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5548378134220649958.post-8211298933421692721</id><published>2011-01-14T15:41:00.000-08:00</published><updated>2011-01-14T16:04:38.376-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sandstrom currys keyboard SGKBW10KB'/><title type='text'>Keyboard not detected. Press F1 to continue</title><content type='html'>I don't moan &lt;span style="font-style: italic;"&gt;all&lt;/span&gt; the time.&lt;br /&gt;&lt;br /&gt;Once in a while someone goes out of their way to be helpful, or technology works the way it should or I find something which is useful / good value.&lt;br /&gt;&lt;br /&gt;Today I bought a new keyboard.&lt;br /&gt;&lt;br /&gt;Like many computer people I know, I've had the same PC for the last 15 years or so. In that time the motherboard has been replaced a few times, disk drives have come and gone, graphics cards and monitrs have been swapped. But the oldest component was an HP keyboard which has been putting in sterling service for the last 8 years.&lt;br /&gt;&lt;br /&gt;So while I was in PCWorld/Curry's today, I picked up a &lt;a href="http://www.pcworld.co.uk/gbuk/sandstrom-sgkbw10-kb-06474285-pdt.html?srcid=867&amp;amp;xtor=AL-50&amp;amp;istCompanyId=9a35962d-802d-4e67-9721-0a3328ca1f02&amp;amp;istItemId=mliamlt&amp;amp;istBid=t"&gt;Sandstrøm keyboard&lt;/a&gt; for £15. This has the nicest action of any keyborad around this price I'd seen, and has the added bonus that the keys have LED illumination.&lt;br /&gt;&lt;br /&gt;The reason I was in Curry's was to pick up a &lt;a href="http://www.currys.co.uk/gbuk/sandstrom-shfusb10-micro-hi-fi-system-black-05057336-pdt.html"&gt;simlarly branded HiFi&lt;/a&gt; for my daughter's birthday. Again which I thought good value.&lt;br /&gt;&lt;br /&gt;Despite the scandinavian looking name, not surprisingly both are made in China, and although time will tell regarding the quality of the electronices, both seem to be reasonably solid construction.&lt;br /&gt;&lt;br /&gt;I suspect that the manufacturer / importer / retailler are currently discounting heavily to establish the brand in the UK.&lt;br /&gt;&lt;br /&gt;Getting all the keys to work on my home machine (currently still with Fedora 9 - a Linux distribution) was surprisingly easy (most of the extra weeks worked as soon as it was plugged in anyway).&lt;br /&gt;&lt;br /&gt;It does have a somewhat compressed physical layout (the space bar is only 60mm) so I'm still hitting thEWRONG Kets some if the time but I@m sure that will pass/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-8211298933421692721?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/8211298933421692721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2011/01/keyboard-not-detected-press-f1-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/8211298933421692721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/8211298933421692721'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2011/01/keyboard-not-detected-press-f1-to.html' title='Keyboard not detected. Press F1 to continue'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-8834747486790561432</id><published>2010-06-23T14:35:00.000-07:00</published><updated>2010-06-23T14:48:21.212-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='newbies internet guru forum programming'/><title type='text'>Where can I get away from them</title><content type='html'>The internet is great - everyone has access&lt;br /&gt;&lt;br /&gt;The internet is terrible - everyone has access&lt;br /&gt;&lt;br /&gt;When I first started using online systems (some time before the arrival of the internet - but I'm not saying how long) people I met online always seemed so knowledgeable and helpful. As I progressed through my studies, and the internet became available I was getting at least as much out of newsgroups and mailing lists as I put in. But gradually the balance shifted - increasingly I saw people asking dumber and dumber questions. For a brief period &lt;a href="http://stackoverflow.com"&gt;Stack Overflow&lt;/a&gt; seemed to be the new hope, before it became as bad as anywhere else (although the rating system bolstering my ego still tends to outweigh my disappointment at the quality of the questions nevermind the "answers".&lt;br /&gt;&lt;br /&gt;While I'd like to think I know what I'm talking about in the forums I participate in regularly, I don't think I'm any sort uber-guru (yeuch - what a horrible term) but primarily I go there to learn - and I'm not learning anymore.&lt;br /&gt;&lt;br /&gt;Of course the same questions come up again and again:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;How do I make this pattern fit this problem?&lt;/li&gt;&lt;li&gt;Do my Class Assignment for me&lt;/li&gt;&lt;li&gt;The people I pay for support won't answer the phone any more so I'm posting my question here&lt;/li&gt;&lt;li&gt;It's broken, I don't know why, but I expect you to fix it&lt;/li&gt;&lt;/ul&gt;Am I just getting too cynical in my old age? Maybe I'll take up nuclear physics as a hobby so I can go back to being a newbie and asking stupid questions on the internet myself.&lt;br /&gt;&lt;br /&gt;C.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-8834747486790561432?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/8834747486790561432/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2010/06/where-can-i-get-away-from-them.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/8834747486790561432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/8834747486790561432'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2010/06/where-can-i-get-away-from-them.html' title='Where can I get away from them'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-2416491445498378009</id><published>2010-05-24T15:10:00.000-07:00</published><updated>2010-05-24T15:14:16.566-07:00</updated><title type='text'>Little furry babies need adopted!</title><content type='html'>For those of you whom I've not met, my daughter breeds and shows rats. She's done very well winning several best in breed and couple best in show at national level.&lt;br /&gt;&lt;br /&gt;The reason I mention this is that we also provide short-term fostering for rescue rats - and we're currently trying to find homes for 13 rescue rats. If you live in the West of Scotland, and are interested, please visit our site at &lt;a href='http://www.ralstonrats.co.uk/dw/doku.php?id=litters:rescue'&gt;www.ralstonrats.co.uk&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-2416491445498378009?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/2416491445498378009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2010/05/little-furry-babies-need-adopted.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/2416491445498378009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/2416491445498378009'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2010/05/little-furry-babies-need-adopted.html' title='Little furry babies need adopted!'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-6251500372073727493</id><published>2010-04-06T11:31:00.001-07:00</published><updated>2010-04-06T11:36:33.438-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dokuwiki RSS SimplePie PHP authentication'/><title type='text'>Dokuwiki is smarter than I am</title><content type='html'>In a previous episode, I was moaning that I couldn't get my DokuWiki RSS feed to display using the RSS parser - it was my wetware which was not up to the job!&lt;br /&gt;&lt;br /&gt;I'd configured this Dokuwiki to disallow any anonymous access - and the RSS generator (feed.php) was correctly showing all the items which the anonymous user was allowed to see - i.e.none!&lt;br /&gt;&lt;br /&gt;I didn't realise this until I'd downloaded the latest stable DokuWiki and ported the hacks I've applied to it, then patched my installation - which obviously did not fix the problem.&lt;br /&gt;&lt;br /&gt;In the meantime, I've created a new user with read access to the entire wiki - then changed my RSS wiki syntax to pass the auth details:&lt;br /&gt;&lt;br /&gt;{{rss&gt;http://www.mysite.com/dokuwiki/feed.php?u=anonymousRss&amp;amp;p=s3cr3t}}&lt;br /&gt;&lt;br /&gt;Apologies to the DokuWiki team!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-6251500372073727493?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/6251500372073727493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2010/04/dokuwiki-is-smarter-than-i-am.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/6251500372073727493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/6251500372073727493'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2010/04/dokuwiki-is-smarter-than-i-am.html' title='Dokuwiki is smarter than I am'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-976832370797682571</id><published>2010-04-01T13:30:00.000-07:00</published><updated>2010-04-01T13:31:30.514-07:00</updated><title type='text'>New Site Up</title><content type='html'>I've setup a website for my daughter's business (well the whole family are involved really). Its at &lt;a href="http://www.ralstonrats.co.uk"&gt;http://www.ralstonrats.co.uk&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-976832370797682571?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/976832370797682571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2010/04/new-site-up.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/976832370797682571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/976832370797682571'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2010/04/new-site-up.html' title='New Site Up'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-5234537623646960621</id><published>2010-04-01T13:25:00.000-07:00</published><updated>2010-04-01T13:29:56.478-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dokuwiki RSS SimplePie PHP'/><title type='text'>Does DokuWiki eat its own dog food?</title><content type='html'>In the last exciting episode I wrote about my troubles setting up blogging/RSS in Dokuwiki - I eventually gave up and installed Serendipity to handle this.&lt;br /&gt;&lt;br /&gt;Having done that, I've now gone full circle and am publishing the blogs as an RSS in DokuWiki. I wanted to provide a single news list, so I had a look at integrating the 'recent changes' feed from DokuWiki on the same page as the serendipity blog - however the DokuWiki RSS feed works with every reader I've tested &lt;span style="font-style: italic;"&gt;except the one built into DokuWiki!!!!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;AAAAARRRGGGGHHHH!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-5234537623646960621?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/5234537623646960621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2010/04/does-dokuwiki-eat-its-own-dog-food.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/5234537623646960621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/5234537623646960621'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2010/04/does-dokuwiki-eat-its-own-dog-food.html' title='Does DokuWiki eat its own dog food?'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-8809984449809511149</id><published>2010-02-06T15:36:00.000-08:00</published><updated>2010-02-06T16:00:42.552-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dokuwiki php blog'/><title type='text'>DokuWiki blogging</title><content type='html'>I've used DokuWiki as a base for a few PHP projects since it provides access control navigation and other such niceties, combined with a very capable Wiki CMS for publishing static content.&lt;br /&gt;&lt;br /&gt;Adding your code to it can be as simple as editing a page and entering:&lt;br /&gt;&lt;br /&gt;&lt;php&gt;[php]&lt;br /&gt; include("myPhpCode.inc.php");&lt;br /&gt;&lt;/php&gt;[/php]&lt;br /&gt;&lt;br /&gt;(where I've subsitituted square brackets for the usual angle brackets - since blogger.com seems not to like the latter)&lt;br /&gt;&lt;br /&gt;There are a some complications around dealing with when the headers are sent vs when the contents of the page is generated, and around when the session is written back - but nothing insurmountable.&lt;br /&gt;&lt;br /&gt;So when my boss tasked me to come up with a simple CMS solution which could provide RSS and atom feeds, needed authentication for adding content, and needed to have "lists of things" using a blog within DokuWiki seemed like an obvious solution.&lt;br /&gt;&lt;br /&gt;Dokuwiki has a plugin 'blogtng' intended to replace the older 'blog' plugin. Both use files for holding the content which was not ideal (I expect that we'll be adding a lot of stuff in there, and require the ability to edit/remove old stuff, also actively pruning old data might be required too for performance/storage reasons). However blogtng uses a database for indexing the content. Great, I thought.&lt;br /&gt;&lt;br /&gt;And then I discover that the PHP from RHEL5 is compiled without sqlite support. That's odd - but I'm not disheartened - I go find out local software guardian and ask for the installation media. There then follows much running around in the manner of the Keystone Cops - indeed if this were a movie rather than a blog it would undoubtedly be shown speeded up, and accompanied by Yakkety Sax - a la Benny Hill. Still no CD-ROM, however as far as I can tell, RedHat never implemented the sqlite extension. There are some third party implementations for RHEL :) except for version 5 :(&lt;br /&gt;&lt;br /&gt;So then I try to rewrite blogtng using mysql. Which proves to be messy. Although it appears to have been written with the notion of some abstraction from the underlying database, direct calls to the extension occur throughout the code. So I first rewrote all these into the abstractin layer. Next, I doscover that sqlite seems to be completely untyped, so I have to reverse engineer the possible datatypes and update all the DDL scripts. Then I find that all the DML needs to be changed too. I also find that it seems to be creating blog entries whenver I view a page (even before I've added the page markup to create any blogs).&lt;br /&gt;&lt;br /&gt;The RHEL5 does support the PDO extension with the sqlite driver, and now that all the database connection code is in one place, it was fairly easy to port it back to that and restore the original DDL and DML. It seems I can now create blogs, blog entries and comments, but still getting blog entries created randomly - so I go back and check the repository - its a known bug. Grrrr.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-8809984449809511149?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/8809984449809511149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2010/02/dokuwiki-blogging.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/8809984449809511149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/8809984449809511149'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2010/02/dokuwiki-blogging.html' title='DokuWiki blogging'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-5645447335551620187</id><published>2010-02-06T14:44:00.000-08:00</published><updated>2011-09-15T14:33:42.286-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP long running process posix background shell'/><title type='text'>PHP and long running processes</title><content type='html'>It seems this question keeps coming up on the PHP newsgroups and, now that I've plugged into Stack Overflow - I keep seeing it their too:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;How I do I start a PHP program which takes a long time to complete and how do I track its progress?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;While these tend to attract lots of replies, they are usually wrong.&lt;br /&gt;&lt;br /&gt;The first thing to consider is that you need to seperate the the thing which takes a long time from its initiation, the ongoing monitoring and whatever final reporting is required.&lt;br /&gt;&lt;br /&gt;Since we're talking about PHP its fair to assume that in most cases, the initiation will be a PHP script running in a webserver. However this is not a good place to keep a long-running program.&lt;br /&gt;&lt;br /&gt;1) webservers are all about turning around requests quickly - indeed most have failsafe mechanisms to prevent one request hanging about too long.&lt;br /&gt;&lt;br /&gt;2) the webserver ties the request to both the execution of the script and to the client socket connection. Typically NOT keeping a browser window open somewhere waiting for the job to complete is an objective for the exercise. Although the dependence on the client connection can be reduced via ignore_user_abort() that was never its intended purpose.&lt;br /&gt;&lt;br /&gt;3) long-running typically means it will have quite different resource requirements than a typical web page script - e.g. lots of file handles being opened and closed, more memory being consumed.&lt;br /&gt;&lt;br /&gt;Most commentators come back with the suggestion of spawning a seperate thread of execution, either using fork or via the shell. The former obviously does not solve the webserver related issues if the interpreter is running as a module - you're just going to fork the webserver process. You've not solved any of the web related issues and created a whole lot of new ones.&lt;br /&gt;&lt;br /&gt;You need to create a new process certainly.&lt;br /&gt;&lt;br /&gt;The obvious type of process to create would be a standalone PHP interpreter to process the long running job. So is there a standalone interpreter available to the webserver? The prospective implementor would need to check (and whether the webserver runs as chroot). So lets assume there is, our coder writes:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;      print shell_exec('/usr/bin/php -q longThing.php &amp;amp;');&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;A brave attempt. However they will soon find that this doesn't behave as well as they expected and keeps stopping. Why? because all the process they created runs concurrently with the php which created it, it is still a child of that process. Now this is where it starts to get complicated. In our example above, the webserver process finishes with the users script immediately after it creates the new process - however it will probably hang around waiting to be assigned a new request to deal with. However at some point the controller for the webserver processes will decide to terminate it - either as a matter of policy because it has dealt with a certain number of requests (for apache: MaxRequestsPerChild) or because it has too many idle processes (apache's MinSpareServers). However the webserver process should not stop until all its child processes have terminated. How this is dealt with varies by operating system and of course, webserver. Regardless, the coder has created a situation which should not have arisen.&lt;br /&gt;&lt;br /&gt;But on a Unix system there are lots of jobs which run independently for long periods of time. They achieve this by:&lt;br /&gt;&lt;br /&gt;1) they are first started, say as pid 1234, and try to fork, say to pid 1235 after calling fork, pid 1234 exits&lt;br /&gt;2) pid 1235 will become the daemon - it closes all its open fds including those for stdin, stdout and stderr&lt;br /&gt;3) pid 1235 now calls setsid(), this dissociates this process from the tree of processes which led to its creation (and typically makes it a child of the 'init' process).&lt;br /&gt;&lt;br /&gt;You can do all this in a PHP script, assuming you've got the posix and pcntl extensions. However in my experience its usually a lot simpler to ask an existing daemon to run the script for you:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;     print `echo /usr/bin/php -q longThing.php | at now`;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;But how do you get progress information? Simple, just get your long running script to report its progress to a file or a database, and use another, web-based script to read the progress / show the final result.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-5645447335551620187?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/5645447335551620187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2010/02/php-and-long-running-processes.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/5645447335551620187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/5645447335551620187'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2010/02/php-and-long-running-processes.html' title='PHP and long running processes'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5548378134220649958.post-965230341570185067</id><published>2010-02-06T14:37:00.000-08:00</published><updated>2010-02-06T14:44:02.121-08:00</updated><title type='text'>Not quiet times</title><content type='html'>It's been a while since my last post since $ork, in their wisdom have blocked access to a huge list of sites including this one. While my exorcising my demons in public does not directly improve my productivity - it does provide a release (a few of my colleagues have expressed a concern that I may go postal at any moment - having been privy to some of my recent frustrations!).&lt;br /&gt;&lt;br /&gt;Anyway, to catch up.....&lt;br /&gt;&lt;br /&gt;Car / Mill Motors (Paisley):&lt;br /&gt;1) Trading Standards were worse than useless, waiting for their advice cost me several weeks which could have been better spent on other things. The advice they gave me was incomplete and substantially wrong in several places.&lt;br /&gt;&lt;br /&gt;2) The Credit Card denied all responsibility - so I went to the Financial Ombidsman - who agreed that there was a problem with the car, and that the Credit Card company should have resolved this.&lt;br /&gt;&lt;br /&gt;The end result is that I got a full refund for the repairs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-965230341570185067?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/965230341570185067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2010/02/not-quiet-times.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/965230341570185067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/965230341570185067'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2010/02/not-quiet-times.html' title='Not quiet times'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-2761447643273064450</id><published>2009-05-14T02:30:00.000-07:00</published><updated>2009-05-14T02:40:12.093-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mill Motors used car paisley'/><title type='text'>Ripped off by Mill Motors, Paisley</title><content type='html'>In January, I bought a used car from Mill Motors (4 Linwood Road, Paisley). The car had a serious fault which I reported to them within the 1 month guarantee period (confirmed by the official Saab dealership) and Mill Motors said (by phone) there was nothing wrong with it, that they were going to do nothing.&lt;br /&gt;&lt;br /&gt;I thought I would be able to get some resolution to this since:&lt;br /&gt;1) it specifically contravenes the sale of goods act&lt;br /&gt;2) I paid for it on my credit card&lt;br /&gt;&lt;br /&gt;So I've been chasing Mill Motors, Trading Standards and my Credit Card company for 4 months, trying to get some restitution. But Mill Motors refuse to put anything in writing - and as a result Trading Standards won't do anything, and neither will my credit card company.&lt;br /&gt;&lt;br /&gt;grrr!&lt;br /&gt;&lt;br /&gt;Lessons learnt:&lt;br /&gt;1) never buy a used car from Mill Motors&lt;br /&gt;2) if I ever get mugged, I'll be sure to get a receipt from the mugger for my credit card company.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-2761447643273064450?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/2761447643273064450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2009/05/ripped-off-by-mill-motors-paisley.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/2761447643273064450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/2761447643273064450'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2009/05/ripped-off-by-mill-motors-paisley.html' title='Ripped off by Mill Motors, Paisley'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-6837135696635439355</id><published>2009-02-25T02:20:00.000-08:00</published><updated>2009-02-25T02:45:13.639-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft non-compliant HTTP optimization'/><title type='text'>More IIS oddities</title><content type='html'>hmmmm.&lt;br /&gt;&lt;br /&gt;Script connecting to Oracle database worked fine in MSIE but fails in Firefox and Chrome.&lt;br /&gt;&lt;br /&gt;On further investigation we discovered that the problem was due to PHP failing to open the tnsnames.ora file (this tells Oracle clients where on the network and what protocol to use when connecting to the database given in ora_logon / oci_connect). &lt;br /&gt;&lt;br /&gt;Let's be quite clear here: &lt;br /&gt; - when the request originated from MSIE, IIS had permissions to open the file&lt;br /&gt; - when the request originated from any other browser, IIS did not have permission to open the file&lt;br /&gt;&lt;br /&gt;In both cases, the script executes as the same user on IIS. Using a user-agent switcher on Firefox had no impact.&lt;br /&gt;&lt;br /&gt;There is an additional complication that the file in question sat on a network share, but that should have no bearing on how IIS behaves. However using a local copy of the file works as expected. &lt;br /&gt;&lt;br /&gt;Micorosft IIS's security model is working differently depending on the browser used - this is potentially a security vulnerability in IIS.&lt;br /&gt;&lt;br /&gt;Again, Microsoft IIS is giving different and preferential treatment to MSIE browsers&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-6837135696635439355?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/6837135696635439355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2009/02/more-iis-oddities.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/6837135696635439355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/6837135696635439355'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2009/02/more-iis-oddities.html' title='More IIS oddities'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-3002926895219043910</id><published>2009-02-24T04:37:00.000-08:00</published><updated>2009-02-24T04:52:39.546-08:00</updated><title type='text'>OS war</title><content type='html'>At the weekend I was working on my home network. My daughter's new laptop arrived (a samsung R60, £300 @ dabs). This was my first prolonged experience with MS Vista.&lt;br /&gt;&lt;br /&gt;I was first pleasantly surprised that it had rather sensibly split the disk into three partitions - one for diagnostics and TWO for Vista - a program drive and data drive! However Microsoft soon put a damper on my excitement - everything is so sssllllloooooowww. Just like previous versions of MS Windows, just about any change requires an immediate reboot - so just getting it working took about 3 hours and 6 reboots (Typically a Linux install from raw metal takes me 45 mins - although I only need to spend about 10 minutes at the computer and 1 reboot). &lt;br /&gt;&lt;br /&gt;Then I got down to the business of configuring the software I really wanted.  It came with a trial version of MS Office - Microsoft punished my insolence for removing the package by taking over an hour to uninstall it.&lt;br /&gt;&lt;br /&gt;It also had SQL Server installed for some reason. That took just as long. And of curse Vista keeps asking me if I really do want to run xyz.exe at seemingly random intervals. How the hell should I know?&lt;br /&gt;&lt;br /&gt;Still its just about done now.&lt;br /&gt;&lt;br /&gt;Overall the laptop seems to be of good quality although the screen seems a bit washed out - not sure if thats just Vista's colour scheme though. When I've recovered from the pain of cleaning up the default install I'll add dual boot for something - probably PCLinuxOS 2008&lt;br /&gt;&lt;br /&gt;Meanwhile, I rolled forward all the patches (only do the security ones on a regular basis) on my Fedora 9 desktop machine. This has taken away most of the rough edges in KDE 4.&lt;br /&gt;&lt;br /&gt;Back at the office found a weird problem with PHP/Oracle/IIS - a script a colleague wrote to poll some data from Oracle works as planned if the browser is MSIE, but in Firefox it gives an ORA-12154 error (can't find database / tns names file). Very weird. Investigations continue.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-3002926895219043910?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/3002926895219043910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2009/02/os-war.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/3002926895219043910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/3002926895219043910'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2009/02/os-war.html' title='OS war'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-8623547443022927249</id><published>2008-10-03T08:38:00.000-07:00</published><updated>2008-10-03T08:43:42.959-07:00</updated><title type='text'>Two factor authentication - grid Key followup</title><content type='html'>It looks like &lt;a href="http://www.theregister.co.uk/2008/10/03/captcha_break/"&gt;CAPCHA's&lt;/a&gt; days could be numbered. And not before time as I try to decipher the picture below the editor where I'm typing this.&lt;br /&gt;&lt;br /&gt;Given such a simple idea as gridKey (working title - don't sue me) its not surprising that someone else &lt;a href="http://www.cryptoshop.com/en/solutions/entrustidentityguard/identityguardauthentication.php"&gt;thought of it first&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Maybe I'll get round to writing a PHP and/or PAM lib to implement it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-8623547443022927249?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/8623547443022927249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2008/10/two-factor-authentication-grid-key.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/8623547443022927249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/8623547443022927249'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2008/10/two-factor-authentication-grid-key.html' title='Two factor authentication - grid Key followup'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-955656849931650030</id><published>2008-09-28T02:53:00.000-07:00</published><updated>2008-10-03T08:46:35.605-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='single use passwords authentication fobs smart cards'/><title type='text'>Authentication tokens</title><content type='html'>&lt;p&gt;&lt;br /&gt;Devices like &lt;a href="https://www.paypal.com/securitykey"&gt;hashing fobs&lt;/a&gt; or tamper-proof smart cards are technically the best solutions for secure authentication - but they have a number of drawbacks for proactical applications. By far the biggest one is that they are not universal - I can't use my Paypal fob to log onto my LAN, I have several smart cards in my wallet, but where do I get a reader? Even if I did, how would I get Google to support the use of the card for accessing my gmail account?&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Instead we seem doomed to endure badly implemented &lt;a href="http://thedailywtf.com/Articles/WishItWas-TwoFactor-.aspx"&gt;wish-it-was-2-factor-authentication&lt;/a&gt; and Capchas which even those of us lucky enough not to be visually impaired, cannot read.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;While &lt;a href="http://www.beaconfire.com/blog/2007/08/07/could-kittens-be-the-future-of-captcha/"&gt;kitten capchas&lt;/a&gt; are undoubtedly cute, do they really help solve the problem?&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;It occurred to me that not entering the same password more than once is a good way to avoid the risk of compromise (essentially this is the common factor in Capchas, smart cards and key fobs) and here is a simple way to achieve this:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;When you create an account for your user, issue them with a grid of letters and digits, 6x6 seems about right.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;table&gt;&lt;br /&gt;&lt;tbody&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style="color: rgb(255, 0, 0);"&gt;A&lt;/td&gt;&lt;td style="color: rgb(255, 0, 0);"&gt;B&lt;/td&gt;&lt;td style="color: rgb(255, 0, 0);"&gt;C&lt;/td&gt;&lt;td style="color: rgb(255, 0, 0);"&gt;D&lt;/td&gt;&lt;td style="color: rgb(255, 0, 0);"&gt;E&lt;/td&gt;&lt;td style="color: rgb(255, 0, 0);"&gt;F&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="color: rgb(255, 0, 0);"&gt;1&lt;/td&gt;&lt;td&gt;s&lt;/td&gt;&lt;td&gt;a&lt;/td&gt;&lt;td&gt;r&lt;/td&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;c&lt;/td&gt;&lt;td&gt;v&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="color: rgb(255, 0, 0);"&gt;2&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;t&lt;/td&gt;&lt;td&gt;e&lt;/td&gt;&lt;td&gt;y&lt;/td&gt;&lt;td&gt;p&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="color: rgb(255, 0, 0);"&gt;3&lt;/td&gt;&lt;td&gt;q&lt;/td&gt;&lt;td&gt;i&lt;/td&gt;&lt;td&gt;g&lt;/td&gt;&lt;td&gt;h&lt;/td&gt;&lt;td&gt;w&lt;/td&gt;&lt;td&gt;k&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="color: rgb(204, 0, 0);"&gt;4&lt;/td&gt;&lt;td&gt;f&lt;/td&gt;&lt;td&gt;m&lt;/td&gt;&lt;td&gt;z&lt;/td&gt;&lt;td&gt;b&lt;/td&gt;&lt;td&gt;i&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="color: rgb(255, 0, 0);"&gt;5&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;d&lt;/td&gt;&lt;td&gt;j&lt;/td&gt;&lt;td&gt;a&lt;/td&gt;&lt;td&gt;n&lt;/td&gt;&lt;td&gt;p&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;br /&gt;&lt;td style="color: rgb(255, 0, 0);"&gt;6&lt;/td&gt;&lt;td&gt;g&lt;/td&gt;&lt;td&gt;e&lt;/td&gt;&lt;td&gt;u&lt;/td&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;w&lt;/td&gt;&lt;br /&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Then, each time they log in, ask for, say 5 of the entries, the grid holds more than 8000 passwords.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Given say 32 possible keys (omitting the letter O and number 0, lower case L and digit 1) the chance of guessing the password are one in 33 million.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Someone's probably already thought of this. But I thought I'd write it down before it gets patented.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-955656849931650030?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/955656849931650030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2008/09/authentication-tokens.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/955656849931650030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/955656849931650030'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2008/09/authentication-tokens.html' title='Authentication tokens'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-3949313589931661272</id><published>2008-09-01T07:12:00.000-07:00</published><updated>2008-09-01T07:27:25.866-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft non-compliant HTTP optimization'/><title type='text'>Microsoft backdoor optimization?</title><content type='html'>I recently replied to a post on uk.comp.os.linux regarding squid - but on reflection, if the details supplied by the OP are correct, then this exposes some backdoor optimization by Microsoft in IIS&lt;br /&gt;&lt;br /&gt;The post and replay are &lt;a href="http://groups.google.co.uk/group/uk.comp.os.linux/browse_thread/thread/32207daf2e7b32ce/ad6f7b6d5b908ee1?hl=en&amp;amp;lnk=st&amp;amp;q=IIS#ad6f7b6d5b908ee1"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Tim said that:&lt;br /&gt;&lt;br /&gt;&lt;p style="font-family: courier new; color: rgb(51, 0, 153);"&gt;tim@feynman:~$ telnet &lt;a target="_blank" rel="nofollow" href="http://www.plumbcenter.co.uk/"&gt;www.plumbcenter.co.uk&lt;/a&gt; 80&lt;br /&gt;Trying 89.207.160.30...&lt;br /&gt;Connected to &lt;a target="_blank" rel="nofollow" href="http://www.plumbcenter.co.uk/"&gt;www.plumbcenter.co.uk&lt;/a&gt;.&lt;br /&gt;Escape character is '^]'.&lt;br /&gt;GET /plumb/index.html HTTP/1.0&lt;br /&gt;User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)&lt;br /&gt;&lt;/p&gt;&lt;p style="font-family: courier new; color: rgb(51, 0, 153);"&gt;HTTP/1.1 400 Bad Request&lt;br /&gt;Date: Wed, 27 Aug 2008 21:44:51 GMT&lt;br /&gt;Server: Microsoft-&lt;b style="background-color: rgb(255, 255, 102);"&gt;IIS&lt;/b&gt;/6.0&lt;br /&gt;Content-Length: 226&lt;br /&gt;Connection: close&lt;br /&gt;Content-Type: text/html; charset=iso-8859-1&lt;br /&gt;(404 body snipped)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt; Connection closed by foreign host. &lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;span style="color: rgb(51, 0, 153);"&gt;This works if you drop the "; SV1" from the user agent. Or even replace &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt; "; SV1" with "; SV2" or replace "5.1" with "5.0" but leave the "; SV1" &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 153);"&gt; bit! &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What's interesting here is that the request headers specify HTTP/1.0 but the response comes back from the server as HTTP/1.1&lt;br /&gt;&lt;br /&gt;While maybe this is just sloppy programming by Microsoft, its worth bearing in mind that, by default MSIE degrades to HTTP/1.0 responses when it knows it's talking via a proxy. Also, HTTP/1.1 mainly addresses performance improvements.&lt;br /&gt;&lt;br /&gt;Further - as Tim points out, the behaviour of the server changes when the user-agent changes.&lt;br /&gt;&lt;br /&gt;Could it be that IIS is using the user-agent for purposes beyond what it should do according to spec? This could give Microsoft an unfair performance advantage over other browsers. Certainly in this case there is hard evidencethat the server is basing its response on the user-agent supplied in the request.&lt;br /&gt;&lt;br /&gt;For the time being this is mostly conjecture and conspiracy theory. But it would be interesting to confirm whether IIS always responds to HTTP/1.0 requests with a HTTP/1.1 response, whether it will include HTTP/1.1 specific browser instructions - and to see if the browser then acts on these.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-3949313589931661272?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/3949313589931661272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2008/09/microsoft-backdoor-optimization.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/3949313589931661272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/3949313589931661272'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2008/09/microsoft-backdoor-optimization.html' title='Microsoft backdoor optimization?'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-1948555500191617995</id><published>2008-08-08T04:07:00.000-07:00</published><updated>2008-08-08T04:15:56.558-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Redhat sendmail mailq links'/><title type='text'>KISS</title><content type='html'>Today I'm looking at monitoring the throughput of a mail server running RHEL5. Unfortunately the default check_mailq supplied with Nagios just looks at the size of the number of messages in the mailq.&lt;br /&gt;&lt;br /&gt;Another problem I encountered was that mailq is not setuid root on this distro. Rather than reinvent the wheel, I thought I'd have a look at how RH &amp;amp; sendmail measure the size of the queue.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: courier new;"&gt;/usr/bin/mailq&lt;/span&gt; is a symlink to &lt;span style="font-family: courier new;"&gt;/etc/alternatives/mta-mailq&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: courier new;"&gt;/etc/alternatives/mta-mailq&lt;/span&gt; is a symlink to  &lt;span style="font-family: courier new;"&gt;/usr/bin/mailq.sendmail&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: courier new;"&gt;/usr/bin/mailq.sendmail&lt;/span&gt; is a symlink to &lt;span style="font-family: courier new;"&gt;/usr/sbin/sendmail&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: courier new;"&gt;/usr/sbin/sendmail&lt;/span&gt; is a symlink to &lt;span style="font-family: courier new;"&gt;/etc/alternatives/mta&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: courier new;"&gt;/etc/alternatives/mta&lt;/span&gt; is a symlink to &lt;span style="font-family: courier new;"&gt;/usr/sbin/sendmail.sendmail&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;...of course!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-1948555500191617995?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/1948555500191617995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2008/08/kiss.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/1948555500191617995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/1948555500191617995'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2008/08/kiss.html' title='KISS'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-356624576740005053</id><published>2008-08-01T04:37:00.000-07:00</published><updated>2008-08-01T04:40:36.536-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Is it any wonder......?'/><title type='text'></title><content type='html'>It would appear that the UK Cabinet Office publish guidance on publishing word processor and other files on government websites:&lt;br /&gt; "&lt;b style=""&gt;&lt;i style=""&gt;&lt;span style="font-size: 11pt;" lang="EN-GB"&gt;Microsoft Word (DOC)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;  &lt;p class="MsoBodyText2" style="text-align: left;" align="left"&gt;&lt;span style="font-size: 11pt;" lang="EN-GB"&gt;Documents can also be saved in Microsoft Word format. ...&lt;span style=""&gt;  &lt;/span&gt;This is the least desirable format as it is proprietary and it cannot be guaranteed that a reader exists for a particular user’s computer."&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  Guess &lt;a href="http://archive.cabinetoffice.gov.uk/e-government/docs/resources/web_guideline_handbook/word/wgl_4-3.doc"&gt;what format they use&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-356624576740005053?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/356624576740005053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2008/08/it-would-appear-that-uk-cabinet-office.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/356624576740005053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/356624576740005053'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2008/08/it-would-appear-that-uk-cabinet-office.html' title=''/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-7999387077932201305</id><published>2008-06-06T04:04:00.000-07:00</published><updated>2008-06-06T04:10:26.001-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle SMP Chronos Firefox Mozilla'/><title type='text'>Oracle Javascript</title><content type='html'>Finally got to the bottom of the problems with oracle_smp_chronos.js turns out its worse than I thought. The script just can't cope with links calling a forms onsubmit method on Mozilla based browsers (actually there is about three different defects here, only the first was initially visible). The odd thing is that the code they've written for MSIE works flawlessly on every version of Mozilla / Firefox I've tested - although I haven't gone back to Navigator version 4. The solution seems quite simple - just change the browser identification code so it runs the same code for Mozilla 5+ and Firefox 1+ as it does for MSIE.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-7999387077932201305?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/7999387077932201305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2008/06/oracle-javascript.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/7999387077932201305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/7999387077932201305'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2008/06/oracle-javascript.html' title='Oracle Javascript'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-549376492353479858</id><published>2008-06-06T03:49:00.000-07:00</published><updated>2008-06-06T04:04:01.762-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blackberry Vodafone Support Bluetooth Linux'/><title type='text'>Blackberry blues</title><content type='html'>Work has decided I need a Blackberry. So after a mere two months procurement process an 8800 appeared. It took me about 3 hours to find the first bug in the software (browser does not accept a cookie suplied in a HTTP 302 response) still I was trying to look on the bright side. Having previously worked for a company selling ringtones, I thought it would be a good idea to add something a bit out of the ordinary. But having previously worked in the industry, the last thing I would do is actually buy one from one of the many suppliers! Fate helped things along when I saw bluetooth USB dongles in my local Tesco for £7. It wasn't long before I had it plugged into my computer and the relevant software up and running. Unfortunately, although I could get the devies to pair, the only service I could get working was &lt;a href="http://www.dr-jan.com/tips/tag/kbluelock/"&gt;kbluelock&lt;/a&gt; - the Obex push client just couldn't see the device.&lt;br /&gt;&lt;br /&gt;A bit of research suggested that this is a common problem - Blackberries won't talk to the BlueZ stack.&lt;br /&gt;&lt;br /&gt;Ho hum.&lt;br /&gt;&lt;br /&gt;Meanwhile, having built a test rig and demonstrated the browser problem, I tried reporting the fault to Vodafone. They've written back asking for lots and LOTS of information &lt;span style="font-style: italic;"&gt;none of which relates to the bug&lt;/span&gt;. I spent less time re-writing the web application I was trying to access then I have trying to satisfy the requests from the support department - who don't seem to understand how their own software works.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-549376492353479858?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/549376492353479858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2008/06/blackberry-blues.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/549376492353479858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/549376492353479858'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2008/06/blackberry-blues.html' title='Blackberry blues'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-1727905230359775064</id><published>2008-05-15T09:24:00.000-07:00</published><updated>2008-05-15T09:27:33.720-07:00</updated><title type='text'>Oracle - not as bad as I thought?</title><content type='html'>In fairness to Oracle, the problems I described only seem to manifest in conjunction with other suppliers javascript. But perhaps its just as well that the DMCA forbids me from finding out exactly how well written their code really is.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-1727905230359775064?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/1727905230359775064/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2008/05/oracle-not-as-bad-as-i-thought.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/1727905230359775064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/1727905230359775064'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2008/05/oracle-not-as-bad-as-i-thought.html' title='Oracle - not as bad as I thought?'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-4068551863681953160</id><published>2008-02-08T09:15:00.000-08:00</published><updated>2008-02-08T09:23:03.805-08:00</updated><title type='text'>Oracle stop eating own dog food?</title><content type='html'>Enabling End-User performance monitoring  using the Oracle application stack and Grid Control, depends on a script called oracle_smp_chronos.js however the the copy we've got will only work with MSIE (its hard-wired to the Microsoft browser event model). I had a look around &lt;a href="http://forums.oracle.com"&gt;forums.oracle.com&lt;/a&gt; to see if anyone had a solution - and I couldn't find anyone with the same problem. I couldn't - so I thought great, they've fixed it! But I can't find the fix.&lt;br /&gt;&lt;br /&gt;But what's even more interesting is that Oracle &lt;a href="http://forums.oracle.com/forums/thread.jspa?messageID=660945&amp;amp;#660945"&gt;no longer seem to be using their own tools&lt;/a&gt; for monitoring - a 'view source' on most of the oracle.com pages shows they are now using Omniture's &lt;a href="http://www.omniture.com/products/web_analytics/sitecatalyst"&gt;SiteCatalyst&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-4068551863681953160?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/4068551863681953160/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2008/02/oracle-stop-eating-own-dog-food.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/4068551863681953160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/4068551863681953160'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2008/02/oracle-stop-eating-own-dog-food.html' title='Oracle stop eating own dog food?'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-5145847225311591582</id><published>2007-12-16T14:00:00.000-08:00</published><updated>2007-12-16T14:30:20.880-08:00</updated><title type='text'>Laptop bling</title><content type='html'>2 posts in a week! I must be sick or something.&lt;br /&gt;&lt;br /&gt;In Spring a friend showed me his new laptop, running a new window manager - something called &lt;a href="http://www.beryl-project.org/"&gt;Beryl&lt;/a&gt; - &lt;a href="http://www.smokinglinux.com/linux-videos/ms-windows-vista-aero-effects-vs-ubuntu-and-beryl"&gt;OMG&lt;/a&gt;! It rocked. I was as impressed as the first time I saw a Windows/Mouse interface, or a Web Browser. Computers should be fun to use and this showed how! At that time though I didn't have the time to play around with such hardware (which surely required the very latest bitchin' graphics card).&lt;br /&gt;&lt;br /&gt;Fast-forward to December. I've recently completed redecorating my daughter's bedroom, and thought I'd let her have my laptop (semi-) permanently installed in there. Despite being a computer geek, the hardware I own is usually cobbled together from spare parts picked up at jumble sales or bought off eBay. Laptop in question is a 1GHz Celeron with 384Mb memory (only recently upgraded from 128) and a slow 10Gb HD (where I need to keep a copy of XP which is used about.........never....so about 4GB left for everything else). Its a very basic workhorse and was bottom of the range even when new.&lt;br /&gt;&lt;br /&gt;I thought I'd do a reinstall for her. Previously it had a series of Suse installs, currently at 9.3. Everything worked, but I felt it was rather bloatware, and her main interest would be in playing games - Suse do not provide a good portfolio of installable games. I had a look at the top 10 on &lt;a href="http://distrowatch.com/"&gt;Distrowatch&lt;/a&gt;, and decided to try out &lt;a href="http://www.pclinuxos.com/"&gt;PC Linux OS&lt;/a&gt;. This can run as a Live CD before installing which is a very handy way to check if it supports your hardware (another area where Linux is now actually leading the other OS vendors!). After bottong it up and liking it, installation was painless and quick handling the Linksys PCMCIA WiFi card, sound and everything else.&lt;br /&gt;&lt;br /&gt;After setting it all up, I noticed there was an option to run a "3D Window Manager" so I turned it on not expecting very much. WOW.&lt;br /&gt;&lt;br /&gt;OK, so not all the effects work (its the most basic video chipset on this thing) I don't get Windows going up in flames or appearing from sparkles - but the wobble, expand, and I can rotate the Desktop cube - indeed the only falut is that it all happens so quickly/smoothly, if you blink you'll miss it.&lt;br /&gt;&lt;br /&gt;Meanwhile everything else works really well - the single CD it installs from had an impressive amount of software on it - and more is easily added from the internet. The only thing which doesn't seem to work is SuperKaramba where the theme browser only list the most popular/highest rated and newest (you can't brows the main catalog from the application) also, liquid weather refused to work (IMHO the only reason for having SK) and SK loses its settings each time you log out. But I was really only playing around with it for extra eye-candy (I still can't believe I'm trying to demo-up that old banger of a laptop!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-5145847225311591582?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/5145847225311591582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2007/12/laptop-bling.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/5145847225311591582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/5145847225311591582'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2007/12/laptop-bling.html' title='Laptop bling'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-5742189078153693514</id><published>2007-12-13T15:25:00.000-08:00</published><updated>2007-12-13T15:43:38.924-08:00</updated><title type='text'>Off work, sick</title><content type='html'>For the first time in my life I've been off-work due to illness for a week.&lt;br /&gt;&lt;br /&gt;I thought I'd go see the quack. It's been a long time since I've seen a doctor, so long in fact that the previous doctor has since retired and been replaced.  This happened 2 years ago to my dentist - but I used to see him a very 6 months. I'm beginning to suspect a conspiracy.....&lt;br /&gt;&lt;br /&gt;But meanwhile, back at the the doctor's surgery - I'm perhaps not fully compus mentus due to the virus and in-approprately large doses of the children's cough medicine (the instructions only went up to age 8 - so I'm about 5 times older than that, and a grown up, and they always leave a bit of safety margin so say 7 times the dosage?) so I'm expecting a bit of banter, maybe a bit patronizing, but we both know its just posturing at this stage to fulfill both our contractual obligations....something like....&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;dr: What can I for you today Mr M?&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;me: Why, heal me, physician!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I then proceed to provide a colourful tale of my man-flu. It is of course crystal clear to both parties that this is a virus and therefore medicines are far from appropriate (you do know that there are lots of anti-virals out there, just like antibiotics....but this could turn into a physiology lecture...so back to the main text) And in addition to demonstrating the value of the states investment in terms of training and salary by verifying my symptoms are in fact due to the virus and not, say, due to being impaled with tyre iron, the good doctor will give me the usual 5 point oil and water change while I'm in there. Checking my blood pressure and such....&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;dr: well you're not dead yet&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;me: that's good but I just need a short-range forecast for my sicknote&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;dr: that is a short-range forecast; you're over-weight, and don't get enough exercise; the fact your blood pressure is so low despite this is indicative of even further health failings.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;But how quickly I have forgotten what (most) doctors are like - I say most, because there is a very small number (1, OK, which is, technically, the smallest number) of doctors I have met who actually impressed me as being very clever, imaginitive and being funny. The rest seem to the product of a selection system valuing only the ability to memorize lots of information and look very sincere. The former talent will of course be of some benefit to anybody taking a tertiary course of education but has often been my own downfall. The second skill is altogether more different. A total failure to look for secondary or un-intended meaning in a statement seems to be route by which the candidates acheive their hippocratic serenity. Who knew that this humour bypass, this Asperger's syndrome with eye-contact should be a pre-requisite for entry?&lt;br /&gt;&lt;br /&gt;I certainly did not. As a youngster, I considered bearing the staff of Asceplius a noble career, my chance to give something back to the world, not to mention that since my GP drove an E-Type Jag and lived in a big house, a bloody nice salary with a """free health-plan""" .&lt;br /&gt;&lt;br /&gt;But for whatever reason, it was not to be. So I found myself on a parallel course of study on the good ship Cell Biology. Somewhat unexpectedly, this led to me actually teaching physiology to medical students! And this provided me a rare opportunity to observe the phenogenesis of the medical mind.&lt;br /&gt;&lt;br /&gt;Medicine, and maybe Law, seem to unique in that they allow no dilution by other disciplines. And the way in which they operate (hah!) has not changed for hundreds of years. Oh, change - sure, they moan about it, but at the end of the day, NPFIT, the largest ever overhaul of Patient Records in the NHS boils to changing a green form for a pink one (and of course a £20bn feeding frenzy for an approved list of suppliers). Doctors decide what is wrong with people, nurses ensure doctors instructions are carried out. And with one Health Service, providing centralised super-hospitals for in-patients, call-centers for end-users, locums for out-of-hours work the identity of the doctor becomes irrelevant and thus the ability for the user to discriminate between good and bad is diminished.&lt;br /&gt;&lt;br /&gt;Meanwhile, back at the surgery, it actually went more like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;dr: Hello Mr M, You've not been well.&lt;/span&gt;&lt;br /&gt;(this has caught me on the backstep. Not falling into the trap of asking why I was here. But instead opening a conversation with a statement. Was the trap spotted and pre-empted or is the savante merely failing to engage fully in the social interaction).&lt;br /&gt;&lt;br /&gt;I pre-emptively scrub "man-flu" from my lexicon for the day.&lt;br /&gt;&lt;br /&gt;The diagnosis goes pretty much as I expect. One mistake was saying I worked in IT when she asks what I do far a living. It's true, but this one is still young and keen and now has reason to give me the full, un-abridged, BMA  approved story of why I'm not getting a prescription for penicillin in words of less than 3 syllables. Beam me up Scottie,&lt;br /&gt;The reported findings are a bit different from my earlier expectations:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;dr (ticks the box marked overweight, but makes no mention): your blood pressure is very good. Do you exercise?&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;me: no, I know I should, there doesn't seem enough hours in the day.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;dr: mhm&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 0, 204);"&gt;dr: OK, thanks for coming in&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I like the ancient Chinese system where you pay your doctor to keep you healthy not to treat you when you're ill.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-5742189078153693514?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/5742189078153693514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2007/12/off-work-sick.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/5742189078153693514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/5742189078153693514'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2007/12/off-work-sick.html' title='Off work, sick'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-683803148296764905</id><published>2007-09-26T04:10:00.000-07:00</published><updated>2007-09-26T04:42:56.141-07:00</updated><title type='text'>PHP double plus good?</title><content type='html'>I've just read &lt;a href="http://www.regdeveloper.co.uk/2007/09/25/ruby_rails_scripting_project_failure_2_0/"&gt;this article&lt;/a&gt; about how PHP was better for one user than Ruby on Rails. It's given me a lot of food for thought about where I go with &lt;a href="http://pfp-studio.sourceforge.net/"&gt;PfP Studio&lt;/a&gt; (but I'm not short of ideas - just time to code!). James Gosling's &lt;a href="http://java.sys-con.com/read/193146.htm"&gt;comments&lt;/a&gt; that PHP is only really suitable for web-based applications seemed a bit unfair, but thinking about it, they really demonstrate one of the main areas where Java fails as a web programming language.&lt;br /&gt;Sure in PHP there are bindings for GTK, ncurses and rumours of Qt/KDE bindings, but the Garbage Collection problem remains - AFAIK PHP handles Garbage Collection by way of reference counting, but there are scenarios where an object can have a reference but still be garbage (actually I can only think of one, with variations, where two objects reference each other, but aren't referenced by anything else). Java can cater for such a scenario - but this comes at a cost. In Java GC is always a trade off between throughput and pause times. For PHP running in a Web application, its simple - at the end of executing the script, delete everything! However this model doesn't really work for long running PHP programs.&lt;br /&gt;&lt;br /&gt;I suppose if PHP wants to be taken seriously for non-web applications it will need a tracing (reachability) based Garbage Collector. If it does come, I hope I can still switch it off for my web applications!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-683803148296764905?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/683803148296764905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2007/09/php-double-plus-good.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/683803148296764905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/683803148296764905'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2007/09/php-double-plus-good.html' title='PHP double plus good?'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-8377319470158217437</id><published>2007-08-16T04:03:00.000-07:00</published><updated>2007-08-16T04:04:34.144-07:00</updated><title type='text'>Buggy WYSIWYG Editor</title><content type='html'>This WYSIWYG HTML editor on Blogger.com sucks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-8377319470158217437?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/8377319470158217437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2007/08/buggy-wysiwyg-editor.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/8377319470158217437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/8377319470158217437'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2007/08/buggy-wysiwyg-editor.html' title='Buggy WYSIWYG Editor'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-283090683394846651</id><published>2007-08-16T03:50:00.000-07:00</published><updated>2007-08-16T04:03:05.697-07:00</updated><title type='text'>Encrypting Files in MS Windows (2)</title><content type='html'>&lt;span style="font-size:130%;"&gt;AXCrypt&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Using the context menu, I first tried to encrypt a copy of a directory - this seemed to be doing something - but I'd no idea where it put the encrypted file!&lt;br /&gt;&lt;br /&gt;I then tried encrypting in place - the program seemed to stop at shredding the first file.&lt;br /&gt;&lt;br /&gt;Eventually it dawned that the program does not created archives - it was encrypting each file in the directory.&lt;br /&gt;&lt;br /&gt;In use, it does what its suppoed to. As with 7zip it uses a temporary directory to store the unencrypted file. In some circumstances it seems to have problems deleting the file when the application is finished with it - but it does promise to delete it the next time the computer is started up. This seems to be related to an existing process opening the file (start up MS Excel, open another doc, then open a axx doc).&lt;br /&gt;&lt;br /&gt;Saving a modified file caused errors, but subsequently reopening the file from axcrypt it kept the changes.&lt;br /&gt;&lt;br /&gt;Its ugly, but fairly fool proof.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;CryptonIt&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.opentrust.com/content/view/135/142"&gt;CryptonIt&lt;/a&gt; uses asymmetric encryption - and we have no PKI infrastructure. But looks like a worthy successor to the delisted &lt;a href="http://tldp.org/HOWTO/SSL-Certificates-HOWTO/x317.html"&gt;WinCrypt&lt;/a&gt; freeware (still available from other sources on the internet).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;LockDisk&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.klonsoft.com/lockdisk/"&gt;LockDisk&lt;/a&gt; looks interesting but the developers are very vague about the licence and the algorithm.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;BladeBox&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.liveye.net/eng/prodotti.html"&gt;BladeBox&lt;/a&gt; creates a virtual drive (no temp files?) the site claims AES encrpytion but licence terms are not published. Variously listed as shareware and freeware.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;CryptoExpertLite&lt;/span&gt;&lt;a href="http://www.secureaction.com/cryptoexpert/lite/"&gt;&lt;br /&gt;CryptoExpertLite&lt;/a&gt; is another virtual drive - nice gui but no dynamic sizing of the drive.&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;I should point out that I was just joking about the CamelCase thing in my previous post - it seems to be coincidence that all the products which seem to come close to matching my brief&lt;br /&gt;have CamelCase names.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-283090683394846651?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/283090683394846651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2007/08/encrypting-files-in-ms-windows-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/283090683394846651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/283090683394846651'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2007/08/encrypting-files-in-ms-windows-2.html' title='Encrypting Files in MS Windows (2)'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-7706344757627402267</id><published>2007-08-16T01:16:00.000-07:00</published><updated>2007-08-16T03:50:05.532-07:00</updated><title type='text'>Encrypting files in MS Windows</title><content type='html'>I'm currently looking for a product for encrypting files within MS-Windows.&lt;br /&gt;&lt;br /&gt;The contents of the file are to be available only to a select number of individuals. The obvious approach was one based on &lt;a href="http://en.wikipedia.org/wiki/Symmetric-key_algorithm"&gt;symmetric encryption&lt;/a&gt; or &lt;a href="http://www.imc.org/ietf-openpgp/mail-archive/pgp00005.pgp"&gt;quorum&lt;/a&gt; type encryption. Although it would be possible to have a system publishing versions encrypted using the individuals public keys this seems overkill.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;XP Encryption&lt;/span&gt;&lt;br /&gt;Based on previous experience in disaster recovery scenarios my initial thought was to look at &lt;a href="http://support.microsoft.com/kb/308991/EN-US/"&gt;facilities&lt;/a&gt; built in to the operating system. However even before digging in to the details of the implementation (based on their implementation of &lt;a href="http://www.schneier.com/paper-pptpv2.html"&gt;pptp&lt;/a&gt; and &lt;a href="http://www.google.co.uk/search?hl=en&amp;client=firefox-a&amp;amp;rls=org.mozilla%3Aen-GB%3Aofficial&amp;hs=T8u&amp;amp;q=microsoft+password+cracker&amp;btnG=Search&amp;amp;meta="&gt;Office password protection&lt;/a&gt;, I thought it best to check) I came across a major stumbling block - users in the domain with admin privileges can access the encrypted files. It's not that I'm trying to subvert our security model - quite the opposite; not everyone in the admin group &lt;span style="font-style: italic;"&gt;should&lt;/span&gt; have access.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;7zip Encryption&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;We are already using &lt;a href="http://www.7-zip.org/"&gt;7zip&lt;/a&gt; widely but until I started doing some digging on the topic, I was not aware that it also supported encryption. Despite the weaknesses in the implementation (described &lt;a href="http://www.cs.washington.edu/homes/yoshi/papers/WinZip/winzip.pdf"&gt;here&lt;/a&gt; for WinZip, most of which applies equally to 7zip) it seemed ideal for our purposes. However when I  tried it out, I found that the ergonomics were so bad that it would be unusable for our needs.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;Although not a show stopper, it uses a temp directory on the local machines physical hard disk to store the unencrypted file. It does clean this up after the application using the file is closed, but could provide a new avenue for accessing the encrypted document.&lt;/li&gt;&lt;li&gt;Under normal operations, when a file within an archive is edited, 7zip automatically puts it back into the archive when the application is exited. It just gives an error when you try this using an encrypted file.&lt;/li&gt;&lt;li&gt;The password for encryption is set when the archive is created. If you try to add additional files later, these are added &lt;span style="font-style: italic;"&gt;unencrypted&lt;/span&gt; with no warning.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;I was a bit surprised at this as, for compression purposes I had found the user interface to be very well designed.&lt;br /&gt;&lt;br /&gt;Because of the Byzantine procurement process here it is a painful experience to actually buy software - and my experience is that it is always better to try before you buy - hence FOSS software is particularly attractive.&lt;br /&gt;&lt;br /&gt;So I'm off to have a look at:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.axantum.com/AxCrypt/Features.html"&gt;AxCrypt&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.opentrust.com/content/view/135/142"&gt;CryptonIt&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;AnyThingElseICanFindWhichEncrypts&lt;br /&gt;AndHasACamelCaseName&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-7706344757627402267?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/7706344757627402267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2007/08/encrypting-files-in-ms-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/7706344757627402267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/7706344757627402267'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2007/08/encrypting-files-in-ms-windows.html' title='Encrypting files in MS Windows'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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-5548378134220649958.post-5309613869202843457</id><published>2007-08-15T08:49:00.000-07:00</published><updated>2007-08-15T08:54:32.051-07:00</updated><title type='text'>Joining the blogging generation</title><content type='html'>Sooner or later I knew I'd end up getting a blog somewhere. Previously I'd published a &lt;a href="http://homepage.ntlworld.com/colin.mckinnon/journal/"&gt;journal&lt;/a&gt; on my NTL homepage - but with only HTML available it was a pain to maintain it (even with &lt;a href="http://pushsite.sourceforge.net/"&gt;PushSite&lt;/a&gt;). Since everyone is entitled to my opinion I thought I'd get me a proper blog account somewhere which handles all those cool things like trackbacks and RSS and other such gobbledygook.&lt;br /&gt;&lt;br /&gt;Don't expect regular postings or wisdom or much in the way of entertainment - but plenty of ranting and general complaining.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5548378134220649958-5309613869202843457?l=symcbean.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://symcbean.blogspot.com/feeds/5309613869202843457/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://symcbean.blogspot.com/2007/08/joining-blogging-generation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/5309613869202843457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5548378134220649958/posts/default/5309613869202843457'/><link rel='alternate' type='text/html' href='http://symcbean.blogspot.com/2007/08/joining-blogging-generation.html' title='Joining the blogging generation'/><author><name>Colin McKinnon</name><uri>http://www.blogger.com/profile/01092917089487772988</uri><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>
