Monday, April 09, 2007
#
Wednesday, April 04, 2007
#
 |
You perhaps know how it is ... I was writing a book called 'Windows - Advanced Programming and Design', and in doing so, I created what I thought were a few neat ideas and bits of code, that others would find interesting.
What I didn't think of was to patent any of those ideas back then [but hey, I'm just a programmer]! |
The story continues here.
Tuesday, April 03, 2007
#
Paul Allen's
FlipStart is out today.
I'd like one, but a bit too much for me to gamble on, i.e., I'll wait until I hear reports first I think.

Here's the
Data Sheet [pdf]
Wednesday, February 07, 2007
#
Competition.
Think of some
managementspeak, and propose a plain-English translation/definition.
For example ...
Mindset - attitude/opinion/stance/view?
Thinking outside of the envelope - thinking creatively?
Customer centric - focused on the customer?
Your turn.
Friday, February 02, 2007
#
A while back, um, quite a while back now [2nd Sept 2002],
I wrote a piece for Computer Weekly about how AV can't work perfectly.
As part of that, I said a little something about how an operating system should do more to protect the user - by
not automatically starting processes that the user hadn't authorized, e.g., say process A [which you trust] suddenly tries to start process B [which you don't trust] - well, the OS should tell you about this and ask for permission!
The bit of this - that made it through the editor's hands went like this:
"For a virus to work, it needs to be executed, either directly, or by some other process already in operation. Now, the operating system is the thing that creates processes. So, if the operating system were a more picky about what processes it'll start automatically - well, these things could be caught very effectively."
If you're interested, the original went like this:
"In order for a virus to work, it needs to be executed: either directly, or by some other already-executing-process. Now, the operating-system is the thing that creates processes. So, if the operating-system were a bit more picky about what processes it’ll start automagically, well ... these things could be caught very effectively.
"Imagine, you double-click what looks like an Excel file-attachment appearing in your email. However, the operating-system sees that the file is actually an executable. Next, it checks to see if this executable has been run on your machine before and, if it hasn’t, it simply asks you – “Are you sure you want to run this PROGRAM?”. You answer ‘no way’. Problem solved.
"Alternatively, this kind of approach – where the operating-system is rather more proactive - could be extended to anything that has write-access to your hard disk. After all, no write-access = no-damage!
I rather liked the
'if you haven't run this before' bit - and I wish Vista's UAC worked like this, e.g., why ask me every time if I trust something when I've already said 'Yes' 30 times before! What if the parameters have changed! Well, ok, how about if they haven't changed from the previous 29 runs, well,
please don't ask me *again* - it's ok!
Also - the no write access ... maybe a better version of UAC ought to get into this a bit more? E.g., how does this fly ... the OS says, you can run whatever you like, but, if that *thing* tries to output data, I'll ask you whether to permit it to continue or not?
If you think about it, protecting a user this way could make real sense - and, in doing so, not be SO annoying/intrusive! For example, what harm is there in running - or allowing to run - a process that you didn't know you were about to run - if it's sand-boxed, and cannot output anything ... it can read files 'til its heart's content, but it *cannot output anything* - not down-the-wire, not to the file system, not to the registry etc. Nitto, nothing! No writes of any kind = you're safe.
Anyway - can I sue ;-) Or, should I patent the no-write stuff :-)
Or,
would MS Research please hire me now please!
:-(
Friday, January 19, 2007
#
Don't click any of these if you're not 'adult' - by age, mindset or disposition! Disclaimer DONE!
So
Original got moved - perhaps
because I was linking to it! So, here's a replacement ...
Will a simple image do? hmmmm
However,
maybe a video is what you're after?
Or
Maybe you'd prefer the 'slightly geeky' approach - and a rather more realistic video IMHO!?
Lastly, there's always ASCII!
However, I got bored with this [gratuitous, me!], anyway - I don't know what this last one is about [whatsoever].
Have a nice weekend
Monday, January 29, 2007
#
Out of interest, and apologies if its been asked before, but
ARE YOU GOING TO BUY VISTA [soon/now]?
I'm not!
Then again, I don't have to in many ways, i.e., we have a licence that would allow me to have this on as many machines as I want, but, the only machine I currently have it on is a virtual one - via VMWare.
I've actually had it [in various forms] for, um, rather a long time now - but, whilst it was not a 'released product', I haven't really bothered - apart from using it for a grid-computing experiment [where I needed it for some rather devious and 'can't say' purposes].
Anyway, now that it's due, and seeing that some of the good features
do actually work - well, I'm not convinced that I'll bother [even though it's free for me to load up a copy on my various machines].
It's 'free' for you, but you don't want it!!! Yes, and yes!
XP Pro works well for me - and my machines are all bolted down etc: and, having witnessed some rather dissapointing bugs in the business-release [which 'smack' of it [still!] being rushed - or - not properly tested], I don't think I'm going to jump on until I'm *forced* to [bought-a-new-machine / paid-for-it-pre-installed / might-as-well-use-it (with XP Pro as a dual-boot!)]
As an MS share-holder [and one-time employee], all of this makes me wonder about Microsoft's future ... how much does an OS [or an Office-Suite]
not do before you consider you should/must upgrade? And, if your answer is that Vista is necessary - what about the next version - or the next version of Microsoft Office?? When will *the product*
do enough - be reliable enough - that, thank you very much, but I'm quite happy with what I've got ta!
And, no, I don't think 128-bit stuff is going to convince me either, Duh!
So, what's the next cash cow for Microsoft? I mean - *search* is done and dusted, so ... what's next ... what's the next BiG Thing?
Just wondering whether or not anyone else has had to modify their code to live with UAC?
The problem? Well, here's one - you can't use CreateProcess to shell another application - like a wrappered setup.exe perhaps.
I recently had to do this for some code that wrappered an AV installer here. CreateProcess fails coz the Shell can't prompt/ask the user if the incoming app's ok to be run.
A simple fix is to just do this via the Shell, i.e., through something like ShellExecuteEx – then the user gets asked the 'is it ok' question.
There seem to be other methods – most of which are documented on msdn of course
Don't know if this will work outside of the UK, but, one of my can't miss radio shows is often
Melvyn Bragg's In Our Time.
I say 'often' because one week the show is about something like the Speed of Light and the next, it's about Renaissance Poetry - guess which find more personally interesting!
Anyway, until this Thursday, the latest programme about Archimedes is available as an
MP3 download.
The science-based programmes are available as a Listen Again thingmy
here.
Saturday, September 30, 2006
#
Here's a link to a webpage/app that I use as a warm-up-thingmy/attention-getter/space-filler - however you want to use it really.
I call it my Sayings Viewer, and I use it before some lectures, and during lecture breaks etc.
Anyway, if you think you could use it - well, feel free!
Feedback [bugs, suggestions, ...] very welcome - email link in the About Box.
Wednesday, March 29, 2006
#
I've recently changed my mobile phone to a top of the line Motorola RAZR
 |
This phone does way more than I actually care to grasp ... like, ya know, mainly I JUST want a phone - but, for all the cool things it does, what's it missing? |
|
Recently, here in the UK, we entered into British Summer Time (that's prob called Daylight Savings for the rest of the world) and thus, personally, a reduction in my own clinical depression ... yet, this wonderful gadget didn't know that we'd changed our clocks [!!!] - and I have to adjust the time myself [even more !!!!!!!!!!!]
Now, I'm not [that] lazy!, but I kinda expect our modern phone wonders to be able to do this for me automagically. Am I being absurd, am I expecting too much from a gadget that [AT LAST!] syncs with Outlook, charges from a USB slot, and that plays The Philosopher's Song as its ringtone :-) ????
What makes this worse [a double wammy if you will] is that I'm about to go on a jolly to Malta for a couple of weeks [you must understand that this is heady stuff - and that no Blue Lagoon will be involved!] - and, guess what - I'll have to adjust the time - again, both there, and when I get back to the UK of course.
Now, surely [I mean, my 6 year old VCR does this shit!] the various phone companies could [probably do?] broadcast the current [UST] time - and, surely, I should be able to say to my phone "I want GMT" - or, better still, "I want LOCAL time" [no matter what it is]. And, the phone should know what UST is, and then adjust to what I WANT- it's as simple as that Well, you'd think!
You know what else these phones should do? When you drop out [we're all too tolerant of that!], the phone - or the phone company - should know where that happened and do two things.
A) refund you the call charge. B) look into strengthening it's coverage in that area!!!! |
Monday, March 27, 2006
#
I haven't tried this with the latest/greatest gcc [perhaps someone could please?] but I was disappointed that with gcc 4.0.2 this code ['essence' only supplied] produced a rather dumb result [IMHO] …
#include <stdio.h>
#include <math.h>
int main(void)
{
long n = 42;
printf("%lf\t%ld\n", pow(n, 2), (long)pow(n, 2));
return 0;
}
Output with gcc version 4.0.2
1764.000000 1763 // <- hmmmm!
You'd [possibly] have thought that gcc's pow() might do the right thing with integral/discrete values – well – I would.
Interestingly, MS's VC6 does do the right thing …
Output with Visual C++ v6
1764.000000 1764
So, the gcc 'fix' is to do something like:
(long)ceil(pow(n, 2)) - and that's just ugly!
Of course, as this is just n ^ 2, it could here be n * n here, but that's off the point I think I'm trying to make – imagine, say, using a few other values … here's 1 to 5
Compiled gcc code output
1.000000 1
4.000000 4
9.000000 9
16.000000 16
25.000000 24 // <- hmmmm!
Compiled VC6 code output:
1.000000 1
4.000000 4
9.000000 9
16.000000 16
25.000000 25
Ok, so, you might spot something wrong here IF you happened to see/use this value before you used it as part of a further calculation. Or, your inputs might be small enough that you 'spot' something wrong with the result.
But, say these values are somewhat bigger … here's another five outputs from the gcc code [without the comparison – would spot that there's an occasional 'off by one' here]:
3980025.000000 3980024 // <- hmmmm!
3984016.000000 3984016
3988009.000000 3988008 // <- hmmmm!
3992004.000000 3992004
3996001.000000 3996000 // <- hmmmm!
And here they are from VC6:
3980025.000000 3980025
3984016.000000 3984016
3988009.000000 3988009
3992004.000000 3992004
3996001.000000 3996001
Of course, it seems as though gcc's implementation is calculating the result of 42 ^ 2 as something like 1763.9999999999, but you know, I can't really find it in my heart to forgive it doing this with integral values somehow!
Thursday, March 23, 2006
#
http://www.isketch.net - if you're good at drawing/guessing!
Thursday, December 29, 2005
#
Had a 'clear out' - lost the feynman prefers the red LEDs, and lost the watch thingmy. So, here it is again: BinaryWatch.zip This one is modded, so that if it's started with a cmd line arg of mode:normal, it runs as a standard 'clock'. Thanks to Matthew Ozvat for the suggestion.
Please don't add comments to this [or my other thread on this], as I rarely come and look at this blog. If you want to ask me something about this, then please email me: teep (do that backwards) .morris@comlab.ox.ac.uk Ta very much P.S. my misses [Jo] bought me a blue LED version for Christmas! W00t - now I have one for best!
Wednesday, August 24, 2005
#
Just been reading this week's Spectator mag: it's not all Thinkgeek and Slashdot stuff with me you know!
Anyway, I Just happened to find myself scanning the 'For MEN' bit in this.
Most of the ads were for 'Professional Massage' - um, got me to thinking, were these coded ads, or legit? Normally, I'd have said 'code' - but, in The Spectator!?
One ad was very interesting - coz if it was but a thin veneer for the phrase call me for a shag I wonder what undiscovered joys 'Hopi Ear Candles' might present!!!
And, even if they're not some sort of device, I can't help wondering what they might be - like, do they protrude 'outwards', or perhaps they're 'vertical' - Hope the wax gives one a kinky kick! I must admit, I'm a *bit tempted* to find out!
Update:
=====
They're candles you put in your ears, and the New Age term for why you might want to do this?
It's Thermal Auricular Therapy! You're shitting me! Nope!
Kind of reminds me of the old Spitting Image theme ...
...
Hold a chicken in the air
Stick a deckchair up your nose Stick a candle in your ear
Buy a jumbo jet
And then bury all your clothes
Paint your left knee green
Then extract your wisdom teeth
Form a string quartet
And pretend your name is Keith
...
Wednesday, March 08, 2006
#
Our [Oxford University] comlab staff, post-docs, RAs, alumni and the like at were invited to Google's London HQ last night: we don't really know why, but, hey - it was good fun, and pretty interesting.
There was one speaker – Google's recently hired Vint Cerf. He gave a talk about how he basically sees the Internet evolving, and how that will effect existing business models - and develop new ones.
He also stated [I think] that it was estimated that we'd soon [all] own at least 10 devices that are more or less permanently connected to the Internet – IPv6 needed of course! He gave some examples of existing devices that demonstrated some of this.
In the USA, you can apparently buy a fridge that's 'on the internet'. If you store items in it this fridge that have RFID tags on/in them [that describe everything about the item – use-by date, ingredients, nutritional value, …], then the fridge can automatically find recipes that use these items in various combinations, and provide you with recipes. The fridge can also apparently 'text' you, e.g., "if you buy some whole grain mustard, I've everything else required for a steak dinner you wouldn't believe" [or some such wording!]. He also told us about some scales that can determine who you are [in a family] by your weight, and send this information to your doctor. He/she can then send back information that the fridge can use – to suggest recipes for low fat dinners perhaps!!
During the Q&A he was asked about the future of AI, and whilst he was being honest – and I agreed with his comments - it was disappointing: he essentially seemed to see little progress being made in the field anytime soon [and certainly nothing substantional happening for n years - what's n? n = BIG]. Well, that's my opinion of what his answer contained; and I reckon he's right.
As to the location. Google's London HQ is on two floors of a rather funky office block in Buckingham Palace Road– most of which seemed empty … so, it looks like they've lots of room for expansion!
After the talk - drinks, snacks on trays [Sushi, etc], and we got a nice goodie bag – the normal stuff – a t-shirt, a pen, some google post-it notes, and a rather nice notebook [the type you write in!]
We've got some more exposure to Google this Thursday when our lab is getting a talk from Shannon Maher [London Engineering Director]. He's going to address "some of the challenges Google face across a wide range of computing disciplines", e.g., issues involved in building large, scalable distributed systems as well as work in areas such as information retrieval, natural language processing [w00t], intelligent data analysis, and user interface design - to make these systems effective at sifting, organising, and presenting relevant information to the user.
That one sounds more interesting than yesterday's, and I would guess that it'll be more technical – which should be good.
Thursday, March 09, 2006
#
Well, today's presentation was a BIG [to me] disappointment!
It was basically a recruitment drive aimed mostly I imagine at some of our spotty undergrads [bless]. IMHO, the speaker seemed ‘weak’ [very different from the one at Tuesday's London gig], and not at all happy with the PowerPoint he was showing, nor in making any eye contact with the audience – a sure sign that he was on – um, what’s the expression – soft/shifting sands, or something like that.
I was hoping we’d get some AI/NLP expert - or at least someone that we could quiz on the same, and get some answers from – even if that meant attempting to read between the lines … i.e., I wouldn’t have expected him/her to ‘reveal’ how Google really does its NLP, but I was hoping for some insight! But, instead, we got a fluffy, ‘we have loads of machines’ [really!], and ‘we have really big indexes’ [no shit - really!!]. Oh well – maybe you actually have to work for them to get the proper answers [numbers/algorithms] to such stuff.
That said, a couple of interesting things were said though. That Google Zurich and [Google somewhere in] Scandinavia do ‘proper’ software development – and that Google Ireland [Dublin] work a shift when Google Mountainview. are all in their beds … the Software Engineering jobs in Ireland are ‘real time’, i.e., Google Ireland takeover form Google Mountainview for some hours of the day, when they become responsible for fixing whatever problem may or may not arise within Google [generally] – for example, ‘under attack’ was mentioned. It would be interesting to see a DOS attack on Google – I’m sure it’s been tried any number of times!
Other interesting titbits:
Apparently, Google are about the 3rd largest producer of computers in the USA – but they only produce machines for their own consumption! If that's right - well, they obviously DO have loads of machines!
They have their own OS for running their backend stuff – not surprising. They also have their own programming language that has the keyword emit to start jobs, and to handle what resources they devote to a given job.
As far as they are aware, Google has the biggest amount of computing power available outside of [but maybe including] government departments - with either three or four letter acronyms [read CIA, GCHQ, NSA etc]
They use TF/IDF, concordances, and collocations for a lot of their NLP ‘stuff’ [spell checking/search etc] – I don’t [don't want to] believe this at all!
Google’s ‘20% do what you want time’ [written into their employees' contracts] has been responsible for some of their products [don’t have my notes available, so I can’t say which – or, was I half asleep during this bit?] - oh, Orkut was one of them I believe [Orkut is someone's name apparently].
The Q&A questions 'ranged' … stuff about China [read: what's this 'don’t be Evil’ thing about then?], stuff about their Logos [!!], stuff about why they keep logs of what's been searched for [indexed by IP?], stuff about if PageRank is so good [and their tweaking of their ranking algorithms] how is that when you often Google for stuff, the top results are for crap like Kelkoo, and sites that offer you, um, some ‘search’!!
Things I would have like to have asked - but thought it pointless:
- What's with blocking the 'GMail [drive] Shell Extension'?
- Is there anything in the rumour about the GDrive? Will it perhaps have its own Shell Extension?
- Could Google provide some categorisation on searching - a little like eBay does ... e.g., so that you could select 'Academic' results, or 'Company' vs. 'Personal' results. Don't know how they'd do the latter though [the former could be filtered using .ac. or .edu domain suffixes. would be better that the existing Google Scholar I think].
- Stuff from my previous Google 'thinks'
- Could Google provide some proper power-searching stuff - regular expressions etc?
- When will the Google API go from a beta, and when will the usage limits be removed?
Saturday, June 19, 2004
#
Two suggestions – both to do with Google assessing its own performance (and improving upon it) – one long, one short…
1. Google should remember what you search for, as it doesn't learn anything about how humans refine search-expressions (unless it IP-logs or something).
Currently, Googleites enter a search-expression, and Google returns n-pages of links to what, it considers, are suitable pages. However, sometimes, what's returned is, for a variety of reasons, inappropriate - so the user refines their query, and resubmits it. Hopefully, within an iteration or two, the user finds what they're looking for.
However, because websites are naturally stateless, Google doesn't know that a previous attempt at finding information is related to a subsequent attempt – therefore, its ability to learn something about how people use language to pinpoint information is limited.
Now, Google could of course inject a little state into this. For example, they could put/update a cookie on your machine. The cookie contains the details of your last search – stuff like what words you used, the time/date of the query, and a unique ID (identifying you). Now, whenever you search, the contents of the cookie (containing the data detailing your previous search) is sent to Google – along with the new search words (the cookie's then, as part of the reply, updated with the new search data). Now, at the back-end Google could very simply look at the date/time information of the earlier search, and, if it's very close to the subsequent search date/time, well, the probability of this second visit being a refinement of the first visit dramatically increases.
Alternatively, they could store this sort of stuff server-side, instead of on your machine. They could (say) log your IP address, and store that with the query data (as before - words used, time/date submitted (the ID is now your IP address)). The process from this point on is the same as the last of course. However, this latter approach has lots of plus points to it, for example: 1. you wouldn't know they're doing it. 2. you can have cookies turned off, and it doesn't matter. 3. nothing about what you've been searching for is stored on your computer, …
In either cases, when a subsequent but related search is detected, important linguistic information could be learned through studying the relationship between the old and new search-expressions.
It's a shame that they don't do this (?) – because, if they did (and could establish that this is a refinement of that), it'd be well interesting to analyse the data, and to see if one can say something about how humans use natural-language to interact with search-engines, and generally optimise their thoughts - turning mentalese (to pinch a Pinker term) into the most suitable/successful, concrete words.
BTW, there's an indication that Google doesn't do this currently – because, if it did, it should be able to offer you better alternative search-expressions (very different to the 'Did you mean' stuff)! Additionally, and in proportion to the number of search words used (and over time using NLP techniques), these alternatives should also become evermore accurate. However, this doesn't happen – so, I assume they don't capture this sort of data. Shame really.
2. Google should watch what websites you visit.
When you've found a useful looking results-page, do Google know what link on it you chose to navigate to? No – Google doesn't do click-through (yet).
And again, it's a shame really – as this data could help improve their page-rank algorithm, and certainly lead to some interesting machine-learning work - in reparsing the page to better correlate its content with your search-expression.
Google is one of the busiest websites in the world – and its raison detre in life is to interact with humans - using natural language. From an AI, CL, ML, and NLP point of view, it'd be a great place to be a researcher (I reckon)!
Saturday, August 06, 2005
#
Just found this potential
ThinkGeek Action Shot - that I didn't use: opting instead for a shot of my
training program running.
Anyway, thought I'd post it here - just for fun.

If anyone's got a ThinkGeek Binary Watch, I posted a link to my training program for it
here
Sunday, July 31, 2005
#
I haven't been here for quite some time - and called by today mainly because I got an email from someone asking for the training program I knocked up for my binary watch ... mentioning the post I made about it here some time ago (the original post is below) .
When I looked at the original entry I made (through curiosity really), I found that, via the comments section, quite a few people had also asked for it!! Yikes - sorry!
So anyway, I've now put a zipped .exe of this here
www.wolfson.ox.ac.uk/~peet/BinaryWatch.zip (1.5Mb). There's no setup program - so it might not run.
Runs ok at this end of course!
I wonder if anyone will donate (right-click the watch face for options etc)?
Original Post
I've knocked up a training program for my binary watch - here's a snapshot of it running:

The snapshot shows it running in cheat mode, i.e. the top window's displaying the denary-time, and the related binary. Normally, the program runs in a mode where it occasionally pops up and challenges you to a game of 'Interpret the Time' - all user configurable of course!
Saturday, August 07, 2004
#
I've knocked up a training program for my binary watch - here's a snapshot of it running:

The snapshot shows it running in cheat mode, i.e. the top window's displaying the denary-time, and the related binary. Normally, the program runs in a mode where it occasionally pops up and challenges you to a game of 'Interpret the Time' - all user configurable of course!
Sunday, October 31, 2004
#
"Comega is an experimental language which extends C# with new constructs for relational and semi-structured data access and asynchronous concurrency ..."
http://research.microsoft.com/Comega/
Not really had a chance to play with this yet - bit of a busy boy lately!
Friday, September 24, 2004
#
Wednesday, September 22, 2004
#
Data Visualization Components
.A set of .NET components that display data in a variety of graphical formats. Includes Treemap, a rendering of hierarchical data as a set of nested boxes; Bubble Chart, a set of points displayed as bubbles in an x-y coordinate system; Piano Roll, a spreadsheet-like display of numerical data rendered in one of several graphical formats; Spire Chart, an advanced version of a histogram; Thread Tree, a hierarchy of nodes sorted by some metric value; and Time Series Chart.
Tuesday, September 21, 2004
#
Scans of the test are there somewhere