tag:blogger.com,1999:blog-89266722024-03-13T00:35:34.171+00:00Danny AngusSome thoughts which I don't want to annoy my colleagues with!Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.comBlogger360125tag:blogger.com,1999:blog-8926672.post-21021692681683302492018-01-20T14:26:00.001+00:002018-01-20T14:26:24.727+00:00Note to self: How to re-enable terminal escape sequences in new WindowsConsoleWindows 10 "fall creators update" 2017, more precisely known as Windows 10 version 1709, brings with it a new version of the windows console.<br />
This is the terminal that is used to display cmd.exe and PowerShell commandline environments.<br />
<br />
Now the new version is nice, amongst other things it has is variable transparency, but it turns off processing terminal escape sequences from Python (and probably a load of other things) by default.<br />
<br />
This is how to turn on the processing of terminal escape sequences in Win10 console V2.<br />
<br />Using RegEdit add "VirtualTerminalLevel" as a DWORD to ‘HKCU\Console’ set to value 0x1<div>
<br /></div>
<div>
restart the console and bob is your uncle.</div>
Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com0tag:blogger.com,1999:blog-8926672.post-58401453424799436132017-11-23T13:40:00.000+00:002017-11-23T13:40:41.227+00:00Note to Self: How to open the react-native debug menu without the rage-shakeI've been playing around with <a href="https://facebook.github.io/react-native/">react-native</a> for a week or so, and I'm liking it.<br />
If you don't know what it is, its basically a toolkit for building mobile apps with, one that makes it easy to achieve good looking apps that integrate with your phone without you having to learn low-level details about how phones work (yay for that!).<br />
One of the great things is that, with Android at least, you can use your own favourite editing tools and the Android SDK and react-native will build your app, install it on your phone, start it running, and attach a debugger to the app and the developer tools in your web browser.<br />
All from one simple command:<br />
<div style="background: #202020; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;">
<pre style="line-height: 125%; margin: 0;"><span style="color: #cccccc;">react-native run-android</span>
</pre>
</div>
<br />
It even has a hot-patch and automatic re-load ability so that the running app updates as you edit your source files.<br />
But one thing has been bugging me like mad, though, there is a "secret" menu of developer options installed in the app, including an option to force a reload, but it requires a "rage-shake" to wake it on the phone.<br />
<i>Or should I say it did.. </i>because if you have your phone tethered with a USB to the Android Debug Bridge (adb) you can issue a keypress signal over adb and bind that to a menu or a keyboard shortcut in your computer. Yes, indeed, open a menu on the phone screen with a press of a key in your editor!
All you have to do is to bind this command to a shortcut or key binding, and <a href="https://www.youtube.com/watch?v=RkhDSOq1ZwQ">Bob's your uncle.</a>:<br />
<br />
<div style="background: #202020; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; width: auto;">
<pre style="line-height: 125%; margin: 0;"><span style="color: #cccccc;">adb shell input keyevent 82 </span>
</pre>
</div>
Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com0tag:blogger.com,1999:blog-8926672.post-21759866560814267422017-07-30T16:08:00.001+01:002017-07-30T16:11:56.504+01:00Note to self: How to reset windows permissionsWe have just copied a big chunk of files off a broken home NAS by mounting the hdd in a windows PC. Luckily this one has a windows format partition on it, the other one doesn't so I'll need to make a bootable Linux USB dongle, probably via https://www.pendrivelinux.com/ and boot from that.<br />
<br />
<div>
However back to windows, and I can't read any of the files on Win10 because the permissions don't map onto the users and groups in Win10, and UAC doesn't help because it won't allow me to "be" an administrator.<br />
<br /></div>
<div>
But I found the answer! :-D<br />
Run powershell "as administrator" cd to the broken directory and use this command to recursively reset the permissions to the system default set for a whole tree.:<br />
<br /></div>
<!-- HTML generated using hilite.me --><div style="background: #202020; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%">icacls .\ <span style="color: #d0d0d0">/reset</span> <span style="color: #d0d0d0">/T</span> <span style="color: #d0d0d0">/C</span> <span style="color: #d0d0d0">/L</span>
</pre></div>
<br />
If that doesn't work you can take ownership of the tree using this command and then try the icacls (eye cackles?) command again<br />
<br />
<!-- HTML generated using hilite.me --><div style="background: #202020; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%">takeown.exe <span style="color: #d0d0d0">/F</span> .\ <span style="color: #d0d0d0">/R</span>
</pre></div>
Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com0tag:blogger.com,1999:blog-8926672.post-80796515700406574782016-04-14T11:19:00.002+01:002016-04-14T11:35:29.629+01:00Note to self: How to mount virtualbox shared folders RW, and enable symlinksSo these are two commands to mount shared folder in a linux host on a linux guest so that the guest has full permission in the shared folders.<br />
<br />
This first command should be executed on the guest VM<br />
<!-- HTML generated using hilite.me --><div style="background: #202020; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%"><span style="color: #cccccc">sudo mount -t vboxsf SHARE_NAME /MOUNT_POINT/ -o rw,users,umask=0000</span>
</pre></div>
<br />
This next command enables symlink creation and should be executed on the host. <br />
<br />
<!-- HTML generated using hilite.me -->
<div style="background: #202020; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;">
<pre style="margin: 0; line-height: 125%"><span style="color: #cccccc">VBoxManage setextradata VM_NAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/SHARE_NAME 1 </span>
</pre>
</div>
Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com0tag:blogger.com,1999:blog-8926672.post-42401827548087367722015-12-10T12:35:00.000+00:002016-04-14T11:36:41.419+01:00Note To Self: Display Raspberry Pi CPU TemperatureI have recently been messing around with a<a href="https://www.raspberrypi.org/" target="_blank"> raspberry pi</a> at work <a href="https://www.raspberrypi.org/products/raspberry-pi-2-model-b/" target="_blank">(a Pi2 model B)</a> for driving display screens for <a href="https://www.openbet.com/products/invenue" target="_blank">our In-Venue product</a> of which I am the product owner. And very exciting it is too, because <a href="http://www.comqi.com/internet-things-reinventing-retail/" target="_blank">the real world is the new frontier</a> (<a href="https://www.accenture.com/_acnmedia/Accenture/Conversion-Assets/DotCom/Documents/Global/PDF/Dualpub_14/Accenture-The-Internet-Of-Things.pdf" target="_blank">this pdf</a> is also a good primer). If you see what I mean, but more on that another time. <br />
<br />
So.. I had to overclock the Pi to improve browser performance to even get near to acceptable speed and smoothness of animations. <i>Pro Tip, the Pi is not a graphics device! </i>Having done this and got acceptable results for a clunky prototype to demo with, and load averages that stayed on the sane side of normal I thought I'd better see if I was frying the CPU. And because I will inevitably forget this useful command I'm saving it here for posterity. Here's how I got the temperature reading.. <br />
<!-- HTML generated using hilite.me --><div style="background: #202020; overflow:auto;width:auto;border:solid gray;border-width:.1em .1em .1em .8em;padding:.2em .6em;"><pre style="margin: 0; line-height: 125%"><span style="color: #cccccc">/opt/vc/bin/vcgencmd measure_temp</span>
</pre></div>
Enjoy!Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com0tag:blogger.com,1999:blog-8926672.post-50940850912969103692015-02-27T11:42:00.002+00:002015-03-03T15:52:03.444+00:00Put code in your google docsI'm writing a technical document using google docs, and I want to put code snippets into it.<br />
I thought this would be hard, before I discovered <a href="http://hilite.me/">http://hilite.me/</a><br />
<br />
This awesome, and awesomely simple, web app converts snippets of code into coloured HTML.<br />
It can format a comprehensive range of languages and apply an equally impressive variety of styles.<br />
<br />
Here's a snip of javascript, I just copied and pasted it straight in here, so it doesn't handle the overflow well, but you have to admit that its pretty cool for something that has a quick copy/paste/click/copy/paste workflow:<br />
<br />
<!-- HTML generated using hilite.me --><br />
<div style="background: #f8f8f8; border-width: .1em .1em .1em .8em; border: solid gray; overflow: auto; padding: .2em .6em; width: auto;">
<pre style="line-height: 125%; margin: 0px;"><span style="color: #aa22ff; font-weight: bold;">for</span> <span style="color: #666666;">(</span>var i <span style="color: #666666;">=</span> <span style="color: #666666;">0;</span> i <span style="color: #666666;">&</span>lt<span style="color: #666666;">;</span> dataObj<span style="color: #666666;">.</span><span style="color: #bb4444;">eventData</span><span style="color: #666666;">.</span><span style="color: #bb4444;">children</span><span style="color: #666666;">.</span><span style="color: #bb4444;">length</span><span style="color: #666666;">;</span> i<span style="color: #666666;">++)</span> <span style="color: #666666;">{</span>
<span style="color: #aa22ff; font-weight: bold;">if</span> <span style="color: #666666;">(</span>dataObj<span style="color: #666666;">.</span><span style="color: #bb4444;">isProduction</span><span style="color: #666666;">){</span>
dataObj<span style="color: #666666;">.</span><span style="color: #bb4444;">eventData</span><span style="color: #666666;">.</span><span style="color: #bb4444;">children</span><span style="color: #666666;">[2].</span><span style="color: #bb4444;">outcome</span><span style="color: #666666;">.</span><span style="color: #bb4444;">coupling</span> <span style="color: #666666;">=</span> <span style="color: #bb4444;">"1"</span><span style="color: #666666;">;</span>
<span style="color: #666666;">}</span>
<span style="color: #aa22ff; font-weight: bold;">if</span> <span style="color: #666666;">(</span>dataObj<span style="color: #666666;">.</span><span style="color: #bb4444;">eventData</span><span style="color: #666666;">.</span><span style="color: #bb4444;">children</span><span style="color: #666666;">[</span>i<span style="color: #666666;">].</span><span style="color: #bb4444;">outcome</span><span style="color: #666666;">.</span><span style="color: #bb4444;">coupling</span><span style="color: #666666;">.</span><span style="color: #bb4444;">length</span> <span style="color: #666666;">&</span>gt<span style="color: #666666;">;</span> <span style="color: #666666;">0)</span> <span style="color: #666666;">{</span>
outcomeData <span style="color: #666666;">=</span> dataObj<span style="color: #666666;">.</span><span style="color: #bb4444;">eventData</span><span style="color: #666666;">.</span><span style="color: #bb4444;">children</span><span style="color: #666666;">[</span>i<span style="color: #666666;">].</span><span style="color: #bb4444;">outcome</span><span style="color: #666666;">;</span>
priceBoost<span style="color: #666666;">[</span>counter<span style="color: #666666;">]</span> <span style="color: #666666;">=</span> Object<span style="color: #666666;">.</span><span style="color: #bb4444;">create</span><span style="color: #666666;">(</span>priceBoostObject<span style="color: #666666;">);</span>
priceBoost<span style="color: #666666;">[</span>counter<span style="color: #666666;">].</span><span style="color: #bb4444;">createPriceBoostHTML</span><span style="color: #666666;">(</span>outcomeData<span style="color: #666666;">);</span>
priceBoost<span style="color: #666666;">[</span>counter<span style="color: #666666;">].</span><span style="color: #bb4444;">applyPriceBoost</span><span style="color: #666666;">(</span>outcomeData<span style="color: #666666;">);</span>
priceBoost<span style="color: #666666;">[</span>counter<span style="color: #666666;">].</span><span style="color: #bb4444;">applyExtraCss</span><span style="color: #666666;">(</span>outcomeData<span style="color: #666666;">);</span>
priceBoost<span style="color: #666666;">[</span>counter<span style="color: #666666;">].</span><span style="color: #bb4444;">initialiseAnimatedImages</span><span style="color: #666666;">(</span><span style="border: 1px solid rgb(255, 0, 0);">'</span>animated<span style="color: #666666;">-</span><span style="border: 1px solid rgb(255, 0, 0);">'</span> <span style="color: #666666;">+</span> outcomeData<span style="color: #666666;">.</span><span style="color: #bb4444;">id</span><span style="color: #666666;">,</span> <span style="border: 1px solid rgb(255, 0, 0);">'</span>images<span style="color: #666666;">/</span>test<span style="color: #666666;">.</span><span style="color: #bb4444;">png</span><span style="border: 1px solid rgb(255, 0, 0);">'</span><span style="color: #666666;">,</span> <span style="border: 1px solid rgb(255, 0, 0);">'</span>test<span style="color: #666666;">.</span><span style="color: #bb4444;">html</span><span style="border: 1px solid rgb(255, 0, 0);">'</span><span style="color: #666666;">);</span>
priceBoost<span style="color: #666666;">[</span>counter<span style="color: #666666;">].</span><span style="color: #bb4444;">checkTextWidth</span><span style="color: #666666;">(</span>outcomeData<span style="color: #666666;">.</span><span style="color: #bb4444;">id</span><span style="color: #666666;">);</span>
counter<span style="color: #666666;">++;</span>
<span style="color: #666666;">}</span>
<span style="color: #666666;">}</span>
</pre>
</div>
Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com0tag:blogger.com,1999:blog-8926672.post-56319839525659265172015-01-16T12:58:00.000+00:002015-01-16T12:58:24.344+00:00Privacy In Public III <h4>
<blockquote>
<a href="http://techcrunch.com/2015/01/15/google-glass-exits-x-labs-as-explorer-program-shuts-down-team-now-reports-to-tony-fadell/" target="_blank">Google Glass Explorer Program Shuts Down</a></blockquote>
</h4>
I'm not going to say a lot about this, except that I'm glad, and I hope that the next step for this tech takes seriously into account the privacy-in-public implications of people walking around with cameras streaming whatever they see.<br />
Anyone who was ever concerned with the level of surveillance in modern society by CCTV, helmet cams, the hacking of web-cams, and the use this can be put to by the nefarious activities of GCHQ and the US NSA, will be pleased that the headlong rush to turn us all into autonomous surveillance drones has paused for thought.<br />
Lets hope Google use the pause to reflect on this.Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com0tag:blogger.com,1999:blog-8926672.post-77363073752008537182013-05-30T10:17:00.001+01:002013-05-30T11:44:13.412+01:00note to self, how to fix "requires installation of untrusted packages" in UbuntuI tried to install a couple of updates on my work laptop, running Ubuntu 12.04, a minute or two ago when prompted by the update manager, and I got the "requires installation of untrusted packages" error.
I've since dicovered that there are two ways round this, one is to allow untrusted packages by doing the update as root or via sudo, and saying "y" when asked<br />
<blockquote>Install these packages without verification [y/N]?</blockquote>
But I don't like that, you don't know who might be spoofing you with what fake packages.
The better way is to rebuild the apt cache. I found the instructions <a href="http://askubuntu.com/a/185366">here</a>, I'm claiming no credit for solving the problem, just reproducing them below so that I can be sure to find them again next time I need them. Hopefully some of you who read this in the future will also benefit.<br />
<br />
<pre>sudo apt-get clean
cd /var/lib/apt
sudo mv lists lists.old
sudo mkdir -p lists/partial
sudo apt-get clean
sudo apt-get update</pre>
<br />
Enjoy!Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com0tag:blogger.com,1999:blog-8926672.post-34128297791495192322013-05-01T13:06:00.000+01:002013-05-01T13:12:11.280+01:00The Best Indoor Streetview's in London<br />
<br />
Googles "indoor streetview" is pretty cool, but when you stray away from the city centre there are some less glamourous locations that are a lot more fun, here are my five faves<br />
<br />
<br />
<h2>Number Five, London's least exciting Art Gallery</h2>
<iframe width="700" height="394" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.co.uk/maps?hl=en&gl=GB&t=h&layer=c&cbll=51.462098,-0.134715&panoid=Z69Hk_omlXRxPpxozzg14w&cbp=13,92.37,,0,6.78&ie=UTF8&source=embed&ll=51.461689,-0.134553&spn=0.000931,0.001878&z=19&output=svembed"></iframe><br /><small><a href="https://maps.google.co.uk/maps?hl=en&gl=GB&t=h&layer=c&cbll=51.462098,-0.134715&panoid=Z69Hk_omlXRxPpxozzg14w&cbp=13,92.37,,0,6.78&ie=UTF8&source=embed&ll=51.461689,-0.134553&spn=0.000931,0.001878&z=19" style="color:#0000FF;text-align:left">View Larger Map</a></small>
<h2>
Number four, A garage in a railway arch</h2>
<iframe width="700" height="394" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.co.uk/maps?hl=en&gl=GB&t=m&layer=c&cbll=51.468538,-0.16324&panoid=uqJJ8ZXiAzf7Fr9VBrRHZA&cbp=13,318.78,,0,3.75&ie=UTF8&source=embed&ll=51.468491,-0.16324&spn=0.000165,0.000469&z=21&output=svembed"></iframe><br /><small><a href="https://maps.google.co.uk/maps?hl=en&gl=GB&t=m&layer=c&cbll=51.468538,-0.16324&panoid=uqJJ8ZXiAzf7Fr9VBrRHZA&cbp=13,318.78,,0,3.75&ie=UTF8&source=embed&ll=51.468491,-0.16324&spn=0.000165,0.000469&z=21" style="color:#0000FF;text-align:left">View Larger Map</a></small>
<h2>
At Three we have.. A Caff</h2>
<iframe width="700" height="394" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.co.uk/maps?hl=en&gl=GB&t=m&layer=c&cbll=51.464986,-0.181062&panoid=0uyrARvw7Gc8597bsJgKMw&cbp=13,267.08,,0,33.92&ie=UTF8&source=embed&ll=51.464798,-0.181063&spn=0.000658,0.001878&z=19&output=svembed"></iframe><br /><small><a href="https://maps.google.co.uk/maps?hl=en&gl=GB&t=m&layer=c&cbll=51.464986,-0.181062&panoid=0uyrARvw7Gc8597bsJgKMw&cbp=13,267.08,,0,33.92&ie=UTF8&source=embed&ll=51.464798,-0.181063&spn=0.000658,0.001878&z=19" style="color:#0000FF;text-align:left">View Larger Map</a></small>
<h2>
At Number TWO, Two guys in a post office</h2>
<iframe frameborder="0" height="394" marginheight="0" marginwidth="0" scrolling="no" src="https://maps.google.co.uk/maps?hl=en&gl=GB&t=m&layer=c&cbll=51.470014,-0.171254&panoid=YaT6YNnOL7S4ncf7BhSkWA&cbp=13,255.9,,0,7.54&ie=UTF8&source=embed&ll=51.469967,-0.171254&spn=0.000165,0.000469&z=21&output=svembed" width="700"></iframe><br />
<small><a href="https://maps.google.co.uk/maps?hl=en&gl=GB&t=m&layer=c&cbll=51.470014,-0.171254&panoid=YaT6YNnOL7S4ncf7BhSkWA&cbp=13,255.9,,0,7.54&ie=UTF8&source=embed&ll=51.469967,-0.171254&spn=0.000165,0.000469&z=21" style="color: blue; text-align: left;">View Larger Map</a></small>
<br />
<h2>
My ALL Time Number ONE: Battersea Auto Stop!</h2>
<iframe width="700" height="394" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.co.uk/maps?hl=en&gl=GB&ie=UTF8&t=k&layer=c&cbll=51.474104,-0.147951&panoid=wodYkH9ig9VLJDikPoqsJw&cbp=13,214.97,,0,7.58&source=embed&ll=51.474037,-0.147951&spn=0.000233,0.000469&z=21&output=svembed"></iframe><br /><small><a href="https://maps.google.co.uk/maps?hl=en&gl=GB&ie=UTF8&t=k&layer=c&cbll=51.474104,-0.147951&panoid=wodYkH9ig9VLJDikPoqsJw&cbp=13,214.97,,0,7.58&source=embed&ll=51.474037,-0.147951&spn=0.000233,0.000469&z=21" style="color:#0000FF;text-align:left">View Larger Map</a></small>Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com0tag:blogger.com,1999:blog-8926672.post-13939019473129508872013-04-05T16:39:00.002+01:002013-04-05T16:57:05.452+01:00Privacy In Public II (less privacy)Ars Technica ran this story last month<br />
<i><a href="http://arstechnica.com/tech-policy/2013/03/stop-the-cyborgs-launches-public-campaign-against-google-glass/" target="_blank">“Stop the Cyborgs” launches public campaign against Google Glass</a></i> ,<br />
<br />
Its about a group who think we should resist Google Glass, There are some thought provoking points raised:<br />
<br />
<blockquote class="tr_bq">
As soon as we got inside however, the employees at Starbucks asked us to
stop filming. Sure, no problem. But I kept the Glass’ video recorder
going, all the way through </blockquote>
And <br />
<blockquote class="tr_bq">
"Google Glass is possibly the most significant technological threat to
'privacy in public' I've seen," Woodrow Hartzog, an affiliate scholar at
the Center for Internet and Society at Stanford Law School, told Ars.</blockquote>
And<br />
<blockquote class="tr_bq">
The law has yet to figure out how to unravel the fact that there are
many situations where individuals expect privacy in public. So perhaps
the best approach to this, at least initially, is a vocal, context-based
opposition</blockquote>
Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com0tag:blogger.com,1999:blog-8926672.post-24249894434108017302013-04-05T16:31:00.000+01:002013-04-05T16:31:00.243+01:00Privacy In PublicI'm becoming increasingly disturbed by the possibility of what I call "MAC address stalking", where people could be located if their WiFi is on and if you can associate their phone number with the phone's MAC address.
So imagine my horror this week when I saw <a href="http://greenroom.asda.com/2013/1/21/get-free-wi-fi-in-stores">these instructions</a> for accessing free WiFi in ASDA stores..
<br />
<blockquote>
Registering for Asda Wi-Fi couldn’t be easier with just a few simple steps:
<br />
1. Select Asda Free Wi-Fi from your network list on your phone
<br />
2. Enter your mobile number
<br />
3. Receive a text message with your access code<br />
...</blockquote>
and from their <a href="https://wifi.orange.co.uk/ui/asda-mobile/terms/tc.html">Terms and Conditions</a> this:<br />
<blockquote class="tr_bq">
"By signing up to the WiFi service, you agree for us to share your information with ASDA and ASDA group companies for them to use this information for marketing and analytics purposes" </blockquote>
Note that "ASDA group companies" probably means the whole of WalMart.<br />
Doing this would mean that ASDA now have a link between MAC address and phone number.<br />
<br />
At its most benign this means that whenever the same MAC address is seen nearby (you wouldn't even need to "connect" to their WiFi again) they could "use this information" to send a text or a call "for marketing" or just log you for "analytics purposes".<br />
<br />
<b>You wouldn't need to interact in any way for them to know that you walked past their store at 2am.</b><br />
<br />
If this data got into the wrong hands (and ASDA isn't necessarily the right ones) it could be a stalkers charter.<br />
<br />
Imagine if you could look up someone's phone number and get their phone's MAC address, then you could use the network to find out where they are connected, and use Google's location service to find their physical location.<br />
<br />
Ok its not as simple as it sounds, but if I can imagine it, someone somewhere can make it happen.
Interested?<br />
<br />
Read more here:<br />
<br />
<a href="http://samy.pl/androidmap/" target="_blank">android map - by samy kamkar</a><br />
<a href="https://www.novainfosec.com/2012/03/19/stalker-app-strikes-back-at-iphones-starbucks/" target="_blank">Stalker App Strikes Back at iPhones & Starbucks </a><br />
<a href="http://www.theregister.co.uk/2010/01/05/geo_location_stealing_hack/" target="_blank">Hacker pilfers browser GPS location via router attack</a><br />
<a href="http://www.theregister.co.uk/2010/08/03/google_street_view_hack/" target="_blank">Hack uses Google Street View data to stalk its victims </a>Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com0tag:blogger.com,1999:blog-8926672.post-58104728433152359392013-01-14T17:28:00.001+00:002013-01-14T17:36:54.705+00:00The Road Not Taken<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.flickr.com/photos/killerbees/8379351833/" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;" title="long I stood And looked down one as far as I could To where it bent in the undergrowth"><img alt="" class="flickr-photo" height="400" src="http://farm9.staticflickr.com/8215/8379351833_3a4d99e323_m.jpg" width="266" /></a>
</div>
<div>
I've been taking some photos.
<br />
<blockquote class="tr_bq">Two roads diverged in a yellow wood,<br />
And sorry I could not travel both<br />
And be one traveler, long I stood<br />
And looked down one as far as I could<br />
To where it bent in the undergrowth;<br />
Then took the other, as just as fair,<br />
And having perhaps the better claim<br />
Because it was grassy and wanted wear,<br />
Though as for that the passing there<br />
Had worn them really about the same,<br />
And both that morning equally lay<br />
In leaves no step had trodden black.<br />
Oh, I marked the first for another day!<br />
Yet knowing how way leads on to way<br />
I doubted if I should ever come back.<br />
I shall be telling this with a sigh<br />
Somewhere ages and ages hence:<br />
Two roads diverged in a wood, and I,<br />
I took the one less traveled by,<br />
And that has made all the difference.</blockquote>
<br />
Robert Frost</div>
Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com3tag:blogger.com,1999:blog-8926672.post-46088467256211764302013-01-02T12:57:00.001+00:002013-01-02T17:43:00.308+00:00Battersea Power Station<div class="flickr-frame">
<a href="http://www.flickr.com/photos/killerbees/8336990373/" title="IMG_5398"><img alt="" class="flickr-photo" height="432" src="http://farm9.staticflickr.com/8352/8336990373_9897ef952c.jpg" width="640" /></a><br />
<br /></div>
<div class="flickr-yourcomment">
I took this photo yesterday, because soon they're going to start redeveloping it, and this view will disappear, probably forever.</div>
<div class="flickr-yourcomment">
They're going to do this to it..<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://www.batterseapowerstation.co.uk/" target="_blank">
<img border="0" height="302" src="http://www.batterseapowerstation.co.uk/images/aerial-view-battersea-power-station.jpg" width="400" /></a></div>
<br />
The Power Station has been one of my favourite London landmarks ever since I went to the funfair as a young kid, and was scared out of my wits by the roller coaster in the early seventies. In fact I didn't go on a roller coaster again for about ten years. </div>
Worryingly Wikipedia says this about it
<blockquote class="tr_bq">It was permanently closed down after five children were killed and thirteen others injured in an accident on 30 May 1972 when one of the trains became detached from the haulage rope, before rolling back to the station (the anti-rollback mechanism having also failed) and colliding with the other train. This is the worst accident in history of themeparks.</blockquote>
Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com0tag:blogger.com,1999:blog-8926672.post-28819564991575862962012-05-25T11:05:00.003+01:002012-05-25T15:01:47.105+01:00If Google and Oracle made aeroplanes where would your sympathy lie then?There's been a lot of talk about the Oracle vs Google court case, and I was reading <a href="http://www.wired.com/wiredenterprise/2012/05/oracle-v-google-no-steak-only-parsley/">this</a> when it occurred to me that I have a few reservations about the strength of Google's argument, and perhaps you'd like to hear them.<br />
<br />
If you know about the technology you might want to skip ahead a bit, but I have to cover off some background, so we all know what we're talking about.<br />
<br />
My thinking first took shape when the <a href="http://www.apache.org/">Apache Software Foundation</a> (ASF), of which I am a member, was making its initial steps towards developing a <a href="http://en.wikipedia.org/wiki/Java_virtual_machine">Java Virtual Machine</a>(JVM).
At its most simple abstraction the JVM is the thing that runs on your computer, and in its turn it executes the java programs, they are loaded into it. The JVM "hides" the differences between operating systems from the Java programs. For example Mac's and Windows might have different ways for a program to interact with memory, the JVM provides memory management which is the same for all java programs, to make this happen a Windows JVM will be different "inside" than a Mac one.<br />
<br />
So Apache were attempting to create an Open Source JVM called <a href="http://harmony.apache.org/">Harmony</a>, and it was during early discussions about the "Java Mail API" which I was involved in that I first ran into the issue which is being tested in court right now. (we will ignore the definition of an API at the moment, because we come to that a bit later, it stands for "Application Program Interface" but you don't need to know what that means) <br />
<br />
I was PMC Chair of <a href="http://james.apache.org/">Apache James</a>, a 100% Java email application server, and I had got chatting to the Harmony folks about one thing and another when the subject came up about whether an ASF licenced version of the JavaMail API would have a more natural home amongst the <a href="http://james.apache.org/team-list.html">java email fanbois</a> of the James project because it is a framework that allows people to write java programs that handle email more easily.<br />
<br />
So I started to think about what this would mean from a code perspective, and began to untangle things in my head, <i><b>here's where I get to the point, stop skipping</b></i>!<br />
<br />
The thing that we call "JavaMail" is composed of three parts, and this is true for many other Java API's including the ones in the court case, and in fact much of the JVM itself. Those parts are:<br />
<br />
i) A specification or definition, this part is the API specification.<br />
<br />
b) An internal component which makes one half of the software, This part is the API interface.<br />
<br />
2a) An example of the other half that you are free to use, or to replace with an implementation of your own. This part is an implementation of the API, whoever wrote it.<br />
<br />
If we use an analogy here, to avoid getting bogged down in abstract descriptions of computer science ideas, we can imagine that an airliner manufacturer would manufacture the floor in such a way as a seat manufacturer could manufacture seats which could be installed after the plane is built, without the plane having to be adapted.<br />
<br />
In order for this to happen the specification for the floor connections would be published and made available to seat manufacturers, who would then compete their little hearts out to make the best/cheapest/lightest seats on the market compatible with the floor specification, and sell them directly to the owners of the planes to be installed after the plane is delivered.<br />
<br />
The airliner manufacturer will make floors and install them in customers planes.<br />
<br />
The specification is a piece of intellectual property, it has taken time to produce and does have some intrinsic value.<br />
<br />
The situation in the Oracle v Google case would be analogous to the situation in which a rival airline manufacturer has published an identical copy of the specification of the floor, manufactured compatible floors and is wooing customers and seat manufacturers from the originator of the specification with the promise of compatibility for all the seats and tooling and expertise that they have invested in.<br />
<br />
What Oracle are contending, or trying to, or failing to, or <i>*ought to be*</i><i> saying</i>, is that the specification is not in the public domain, it is their intellectual property and they are within their rights to restrict its use to allow people to implement the replaceable parts (the implementations, the seats), and not the internal part (the interfaces, the floor). In other words, not only is it breach of copyright (as the court has recently determined) but it is also probably not "Fair Use" (which they are still to decide upon) for Google to produce an API of their own to Oracle's specification. If it is, then people are going to very quickly stop publishing API's that allow competitors to benefit from years of research and development.<br />
<br />
Of course this is then masked by a big shit-storm of FUD and misdirection by both sides, trying to veer off the subject onto other more easily determined areas of IP law where they believe they have an edge, such as:<br />
<br />
The "field of use" restrictions, which are important but not directly relevant to the API arguments.<br />
<br />
Patent infringement, of course, which is the modern lawyer's soup-of-the-day for the whole decade and IMHO totally irrelevant here.<br />
<br />
And the distracting but easy to comprehend copy'n'paste IP crime where code appears to have been copied from somewhere that it couldn't have been legally.<br />
<br />
The last one is the worst FUD of the lot because that is copyright infringement, as is the case where the specification is used in contradiction to the terms of its licence, but its a different crime, a separate incident, qualitatively something else altogether .<br />
<br />
From this point of view I don't think Google's position is as solid as they might want it to be, or as solid as the judgements may suggest, but the truth of the matter is that Sun caused this whole debacle by vacillating over the legal status of Java, the API's the JVM, the TCK and a raft of other things that they thought morally *<i>ought</i>* to be open source and free for people to use for any purpose but weren't in law, because they never made it clear enough what was being explicitly permitted and what was being benignly tolerated.<br />
<br />
And that is why I have mixed feelings about the merit of Google's case, and some grudging understanding of Oracle's position, and a bad taste in the mouth about Sun's failed attempts to be Machiavellian with the IP laws.<br />
<br />
And if you're wondering what happened to James and the JavaMail API, we never did take it on, its a very poorly designed API and would have brought us a lot of work with precious little benefit.Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com0tag:blogger.com,1999:blog-8926672.post-46671071485912355212012-05-14T17:55:00.000+01:002012-05-14T18:01:28.750+01:00This Site May Harm Your Computer<br />
Oh Lordy.<br />
New Colleague X (did I mention I have a new job?) decided to google the new boss, and discovered that this blog had been blacklisted for being "harmful".<br />
Instead of seeing this stuff it came up with this message in firefox..<br />
<br />
<blockquote class="tr_bq">
Reported Attack Page!<br />
This web page at killerbees.co.uk has been reported as an attack page and has been blocked based on your security preferences.
</blockquote>
<br />
"Oh my", I thought, "'Reported Attack Page!' that sounds serious, and it has an exclamat!on mark and three capital letters."<br />
<br />
D'y'know what it was? A little investigation revealed that it was a link to the bileblog (not linked here for the obvious reason!) which had some kind of malware on it, apparently.<br />
<br />
Whats worse is that in Google's search results it says "This Site May Harm Your Computer" more capitals, it must be Bad.<br />
Let
me put the record straight, this site won't "Harm Your Computer", or
anyone else's, but if you follow the links eventually you may get to a
site which might, in fact Google's own diagnostic page say: <br />
<blockquote class="tr_bq">
Of the 50 pages we tested on the site over the past 90 days, 0 page(s)
resulted in malicious software being downloaded and installed without
user consent. The last time Google visited this site was on 2012-05-05,
and suspicious content was never found on this site within the past 90
days.</blockquote>
That's right, "<i>Zero pages</i>", and "<i>suspicious content was never found on this site</i>"<br />
<br />
I have to say that I was surprised at the draconian and alarmist reaction, surely when someone clicks the link that should be the point at which the browser screams "Reported Attack Page!".<br />
<br />
<br />In honour of this hyperbole and lack of perspective I have replaced the sub title of my blog.Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com0tag:blogger.com,1999:blog-8926672.post-85434919688810461462011-10-19T14:09:00.001+01:002011-10-19T14:10:34.038+01:00Eek! a Patent TrollSo, yesterday a patent troll in the form of a company called Kelora Systems, LLC came to my attention, for reasons which need not concern us at the moment. And having followed up on it a bit I can now understand why so many companies are involved in the aparently insane pastime of suing and counter suing each other through nearly every court in the world. I'll tell you why in a minute, but forst to kelora.<br />
<br />
What staggered me is that they claim that they hold a patent, 6,275,821, known rather familiarly as '821, which covers "<i>a method and system for executing a guided parametric search</i>"<br />
<br />
What is that? I'll tell you in a few short lines what the patent takes pages to painfully struggle to express:<br />
<br />
In order to help people select a product from a catalogue the system displays a list of products and product attibutes.<br />
Then, on the user selecting values the list of products is filtered to show only matching products, and the available attribute values are filtered to only show ones which still apply to the subset of products.<br />
<br />
Or more simply still, if your system shows a list of products and gives the user the ability to filter this list by price, or size, or colour, you are potentially infringing the patent. My favourite example can be seen in the left hand column of <a href="http://www.allsaints.com/men/jeans/?all=1">this page</a> (on a website which isn't within the jurisdiction of the US courts).<br />
<br />
I hear you, you just said OMGWTF, didn't you? Yeah, so did I.<br />
<br />
So I dug into it a bit and uncovered some interesting bits and pieces, first of all these trolls are gunning for <a href="http://www.google.co.uk/#hl=en&sugexp=kjrmc&cp=7&gs_id=q&xhr=t&q=kelora+systems&pf=p&sclient=psy-ab&source=hp&pbx=1&oq=kelora+&aq=0&aqi=g4&aql=f&gs_sm=&gs_upl=&bav=on.2,or.r_gc.r_pw.r_cp.,cf.osb&fp=bad8059df0eae41a&biw=1868&bih=966">just about everyone you could imagine</a>, and a whole lot of other folks too. And it seems like there are legal challenges afoot by a number of big hitters to get the patent overturned, <a href="http://www.ndcalblog.com/2011/07/ebay-prevails-in-limiting-patent.html">this</a> from last year which was only partially sucessful and another move in the federal courts to be heard in November (2011).<br />
<br />
I know theres a lot of talk about software patents, but for someone to be allowed to use a patent for something as self evident as the "method" and as dated and stuck in the 90's as the "system" is a total indictment of the whole notion. I could understand the intention (but not necessarily agree with it!) if the company had invented a useful product which was differentiated on the basis of the method, and sought to protect their investment, and if it was limited to the field of use originally intended, but this is little more than a patent on the application of common sense to a well recognised pattern of problem (how do you let people browse an online catalogue).<br />
<br />
If the US patent office allows people to patent things as non specific as this its little wonder the courts are filled with patent cases, this isn't protecting your R&D this is a land grab for the common sense of the future. And if the courts continue to uphold patents like this, and the patent offices of the world carry on granting them we may find ourselves in a situation where innovation is held to ransom by lawyers and patent trolls.Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com0tag:blogger.com,1999:blog-8926672.post-41677778916783951232011-10-19T12:39:00.000+01:002011-10-19T12:39:08.248+01:00Note to self, how to get a list of recipients from the maillogI spent a while figuring out how to get a list of email recipient addresses from the maillog, without duplicates, for a specific day on RHEL.
In the end I distilled it into to one line.<br />
<br />
I'm sure I will have to do it again, so I'm making a note of it here, meantime if you need to extract recipient addresses from maillog you're welcome to try it. just paste it onto the command line and hit the go button, its surpisingly quick.<br />
<br />
<code>cat /var/log/maillog | grep "Oct 19" |\ </br>
grep to= |cut -f5 -d":" | cut -f2 -d"=" | cut -f1 -d"," | \ </br>
sed 's/<//' | sed 's/>//' | \ </br>
sort | uniq > addresses.txt </code>Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com0tag:blogger.com,1999:blog-8926672.post-74318144483955795212011-09-22T13:58:00.001+01:002011-09-22T13:58:30.838+01:00Penis seen from space IVIn my ongoing quest to keep you up to date with these important developments here's another one..<br />
<a href="http://news.msn.co.nz/glanceview/170749/waikato-penis-prank-seen-from-space.glance">Penis Seen From Space</a> <i>For the other stories <a href="http://blog.killerbees.co.uk/search/label/seen-from-space">check out seen-from-space</a></i><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbYLhr_DGJbYOO0aWR9qGfDZC5ntJbnlczcGx94Tk1J07CO0VKViHn5knm7R6pwkCd7AIJHAuLFtaOVYaTeYoSdfElqTVTvp7gzp7wdRijuNpC4HM24vSJ77YDysMKkfedj-h9FA/s400/Penis+prank.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="259" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbYLhr_DGJbYOO0aWR9qGfDZC5ntJbnlczcGx94Tk1J07CO0VKViHn5knm7R6pwkCd7AIJHAuLFtaOVYaTeYoSdfElqTVTvp7gzp7wdRijuNpC4HM24vSJ77YDysMKkfedj-h9FA/s320/Penis+prank.jpg" width="320" /></a></div>
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com0tag:blogger.com,1999:blog-8926672.post-56896622887776872372011-08-19T11:55:00.028+01:002011-08-20T13:05:35.806+01:00Dipping a toe in FCommerce<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-3bGnN8RBRRE/Tk5De-j9UtI/AAAAAAAAAek/BgvqCl3DbGY/s1600/MWSnap0202.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="145" src="http://4.bp.blogspot.com/-3bGnN8RBRRE/Tk5De-j9UtI/AAAAAAAAAek/BgvqCl3DbGY/s200/MWSnap0202.jpg" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">FStore Homepage</td></tr>
</tbody></table> Today <a href="http://www.allsaints.com/">AllSaints</a> launch our <a href="http://www.facebook.com/allsaints?sk=app_151401158271363">Facebook store</a> (US store follows next week), click the link to browse, view products and buy them directly from within Facebook. <br />
<br />
We spent a lot of time looking at other peoples' facebook stores, and rather than try to cram everything in we decided that ours should not be only a replacement for our web store, instead we thought that as we have too much in our catalogue browsing it in facebook would be too cramped an experience. Rather it is intended to promote our web store to our facebook fans, and allow us to do more to monetize our investment in facebook.<br />
<br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://2.bp.blogspot.com/-W7ucmapxkZk/Tk5Eat3NLfI/AAAAAAAAAes/Qsy7wEhmGSw/s1600/MWSnap0205.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="144" src="http://2.bp.blogspot.com/-W7ucmapxkZk/Tk5Eat3NLfI/AAAAAAAAAes/Qsy7wEhmGSw/s200/MWSnap0205.jpg" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">FStore category view</td></tr>
</tbody></table>We wanted it to blend in well with facebook, and to be a familiar environment for facebook users, not look just like our web store in an iframe. As we see with <a href="http://apps.facebook.com/asosofficial/">ASOS</a> and <a href="http://apps.facebook.com/shopjcpenney">JC Penney</a>. I'm sure that works for those guys, but we wanted to take a more joined up approach to "fcommerce" and to augment and enhance our customers choices and their experience of our brand.<br />
<br />
So we have created a place where we can showcase a selection of products, in a specially selected range of categories. Our visual merchandisers have full control of the catalogue, using the same systems that they use to merchandise our other online channels, and I hope that in the coming weeks we will see the facebook store take on a character of its own, seperate from, but complimentary to, our <a href="http://www.allsaints.com/">main web site</a>.<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/-0FBHOgmczcI/Tk5DfRDv8YI/AAAAAAAAAeo/8QK6lVWY-wI/s1600/MWSnap0203.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="198" src="http://4.bp.blogspot.com/-0FBHOgmczcI/Tk5DfRDv8YI/AAAAAAAAAeo/8QK6lVWY-wI/s200/MWSnap0203.jpg" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">FStore product detail</td></tr>
</tbody></table><br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="http://3.bp.blogspot.com/-iCakivGaAaA/Tk5DeUIyI8I/AAAAAAAAAeg/RaUNkP5aIyI/s1600/MWSnap0204.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="130" src="http://3.bp.blogspot.com/-iCakivGaAaA/Tk5DeUIyI8I/AAAAAAAAAeg/RaUNkP5aIyI/s200/MWSnap0204.jpg" width="200" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">FStore embedded "cart"</td><td class="tr-caption" style="text-align: center;"><br />
</td></tr>
</tbody></table>And now our fans can buy things that we promote on facebook without having to find them again on our website.<br />
<br />
Good Job Team!Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com0tag:blogger.com,1999:blog-8926672.post-19945177097281918042011-06-07T12:54:00.002+01:002011-06-07T13:40:52.732+01:00+1 buttonAs an experiment (and before I let anyone go anywhere that near <a href="http://www.allsaints.com/">my employers</a> precious website with it) I added the <a href="http://code.google.com/apis/+1button/">google +1 button</a> to this blog today.<br />
Unfortunately while I understand the idea of giving a bit of content an Big <b><span style="font-size: large;">+1</span></b><span style="font-size: small;"> I can't see where anyone would know that I've +1'ed anything.</span><br />
<span style="font-size: small;">If you have more of a grip of reality than I do, do let me know!</span><br />
<br />
<span style="font-size: small;">UPDATE! I found out, you need to use google.com not google.co.uk[1].. hardly had I done this and +1'ed things than +1's started showing up in my search results.. </span><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://blog.killerbees.co.uk/2011/01/note-to-self-mysql-query-profiler.html" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-StNOZwzt5VE/Te4YX3ZHJ_I/AAAAAAAAAQo/cxpX66PBWUs/s1600/MWSnap190.jpg" /></a></div><span style="font-size: small;"><br />
</span><br />
<span style="font-size: small;"><br />
</span><br />
<span style="font-size: small;"><br />
</span><br />
<span style="font-size: small;"><br />
</span><br />
<span style="font-size: small;"><br />
</span><br />
<span style="font-size: small;"><br />
</span><br />
<span style="font-size: small;"><br />
</span><br />
<span style="font-size: small;">[1] I had to go to my <a href="https://profiles.google.com/">google profile</a>, enter a search term in the search box, then click "reset search tools" and I was on google.com instead of .co.uk<br />
</span><br />
<span style="font-size: small;"> </span>Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com0tag:blogger.com,1999:blog-8926672.post-25930438328356847482011-05-03T16:49:00.000+01:002011-05-03T16:49:11.850+01:00Colleagues go mad for "cheap" TV<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_x9cLGls3yCY/RYLB4rc2AcI/AAAAAAAAAAM/b4vXPmJWvJE/s1600-h/DSC00512.JPG"><img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp1.blogger.com/_x9cLGls3yCY/RYLB4rc2AcI/AAAAAAAAAAM/b4vXPmJWvJE/s320/DSC00512.JPG" alt="" id="BLOGGER_PHOTO_ID_5008778915069952450" border="0" /></a><br />
OMG, get-a-cheap-tv fever gripped the workplace today as my colleagues (who should've known better!) went on a fevered buying spree after <a href="http://www.woolworths.co.uk/">woolworths</a> appeared to be selling <a href="http://www.woolworths.co.uk/ww_p2/product/index.jhtml?pid=50828156">Sharp 37" & 42" LCD TV's for £150</a>.<br />
Sadly no-such-luck boys and girls, woolies T's & C's retain the right not only to cancel your order but also to ... ".. continue with the order at the correct price" which might embarrass those who chose to order several of the two grand machines!<br />
There were reports of orders being cancelled, however the on-line price was still £150 as this post "went to press", so if anyone else fancies a go...<br />
Pictured (left) are Colin (Products Development Manager), Kevin (Lead Technical Consultant) and Stuart (Technical Services Manager) at the height of the madness.Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com1tag:blogger.com,1999:blog-8926672.post-45935298605494221322011-01-27T12:35:00.000+00:002011-11-04T10:54:00.366+00:00note to self, MySQL query profiler<i>Update</i> <i>The original article mentioned in this post is no longer available, but if you are still interested in query profiling in MySQL, check out this <a href="http://dev.mysql.com/doc/refman/5.0/en/show-profiles.html">http://dev.mysql.com/doc/refman/5.0/en/show-profiles.html</a></i><br />
<i>I will write up an quick start guide to profiling myself here, one day.</i><br />
<br />
-- original post <br />
this article is a great way to get started using the mysql query profiler.<br />
<br />
If you've never used it before take some time to check it out, it will change the way you think about the database forever.Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com0tag:blogger.com,1999:blog-8926672.post-70901235856529626652011-01-19T17:47:00.000+00:002011-01-19T17:47:38.341+00:00Note to self, how to get the top tens from MySQL slow query logUse these two commands to get the top ten and top ten repeaters from MySQL's slow query log.<br />
<br />
mysqldumpslow -t 10 ./slow-log > /home/danny/top_ten_slow_query.txt<br />
<br />
mysqldumpslow -a -s c -t 10 ./slow-log > /home/danny/top_ten_repeat_slow_query.txtAnonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com0tag:blogger.com,1999:blog-8926672.post-49895015457479303082011-01-18T12:19:00.001+00:002011-01-18T12:20:37.935+00:00Quote of the [specify period]This [period]'s quote is from Nicola Morrison, ScottishPower online manager quoted on computerweekly.com, <a href="http://www.computerweekly.com/Articles/2007/02/26/222076/ScottishPower-boosts-customer-self-service-web-strategy.htm">here</a>, in a piece which quite frankly looks like marketing blurb placed by a PR agent on a day when the editor was hungover.<br />
<br />
Anyway, Nicola have an award for improving customer service not by answering customers questions but by analysing them!<br />
<br />
<blockquote>Working with [tech co][1] has ... given us an unparalleled insight into our customers' requirements through the ability to analyse the questions they are asking.</blockquote><br />
[1] I'm not going to repeat the name of the company involved, I don't want to draw attention to them!Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com0tag:blogger.com,1999:blog-8926672.post-31448523366549464832011-01-13T09:32:00.002+00:002011-01-13T09:32:47.254+00:00Note to self, how to delete files older thanYes, yet another one that I always have to look up, I think it must be my age!<br />
<br />
<blockquote>find /path/to/files* -mtime +5 -exec rm {} \;</blockquote>Anonymoushttp://www.blogger.com/profile/16026893027426568299noreply@blogger.com0