A new definition of primes
I had a discussion over email a while ago with someone I finally met today about whether the number 2 is prime. Let’s call him James. His real name is James.
A prime is usually defined as a number greater than or equal to two that is divisble by 1 and itself. People often take issue with the arbitrary lower limit set, which is there to avoid 1 being prime which would almost certainly cause the world to end—the likely wider consequences are far greater. But I’ve never had a discussion with anyone about whether 2 is prime. It just is.
To avoid any doubt over 1’s primeness (and indeed that of its next door neighbour, 2), I’ve never understood why the definition isn’t changed to the following:
Any number divisible by exactly two positive integers.
It would work wonderfully and save all sorts of deep and meaningfuls among mathematicians. Actually, maybe that’s why the definition’s never been changed.
AOL: the devil of the internet
AOL is without doubt the devil of the internet. I hate it with a passion, a passion the extent of which is rarely surpassed. Nazism is below it, but it’s a close call.
This weekend, I visited my parents. And my dad’s internet experience is so heavily compromised by the AOL scourge. The experience of everything he does onlinevis shit. Email is embedded within dreadful, AOL-branded windows, with no sense of a world outside. The browser is horrendous, using the IE engine (as far as I know), yet coming with all of the horrors of IE and none of its few redeeming features. (CTRL+Enter doesn’t work to auto-complete web addresses with the Ws and the .com, for example.)
And the worst thing about all of this: my dad thinks this is the internet. For his age, I’d say that technology-wise, he’s relatively savvy. But AOL has locked him into a world that is AOL so much so that he knows no better, and never gets the opportunity to explore outside—just because AOL provides his Internet connection.
It’s not like Google. Google does provide you with an internet world, but it’s nowhere near as closed. It links elsewhere, and doesn’t seem to mind if you leave their world, trusting that you’ll come back when you need to.
So next time I’m in Halifax, my mission will be to get him off the heroin that is AOL, the drug equivalent of the internet. Scum that they are.
Namesakephobia
I have a phobia. My phobia is that someone with my name will become famous. Someone that’s not me, that is.
Suddenly, I wouldn’t be on the front page of a Google search for my name; and whenever introduced to others, people would be more interested in tiresome name-based observations than in meeting me. And generally, it would all be a bit shit.
So if you share my name, please shy away from the limelight. There’s a good lad.
iKea and iPhones
I’m always amused by the drawer-testing robot in Ikea. For those not aware of its work, it’s located in the kitchen area, is protected from the general public (or the general public from it—I’m not sure which) by a box made of heavily-scratched, once-clear acetate, and is made up of a ready-made Ikea drawer unit along with a robot that opens and shuts the drawer throughout the history, and indeed the future (collectively known as the fullness), of time. Its purpose is to prove the robustness of Ikea drawers.
I’m amused because it’s rubbish. Drawers don’t break because they’re opened and closed smoothly time and time again. They break because you come home drunk, slip in the kitchen grabbing one of the drawer handles to soften the impact of your ass on the tiled floor. (Note to wife: this is a fictitious scenario being used by way of example.) They break because you try to open them with your foot while straining your vegetables (not a euphemism) to avoid your sticky hands daubing the handles. (Note to wife: see above.)
Today, I thought of the Ikea robot while operating the top-left switch on my iPhone 3GS—the one that switches sounds on and off. Of all of the beauty that is the devilishly handsome device, this appears as though it may be the weak link. Don’t get me wrong—mine hasn’t broken or anything. It’s just that switching it is quite a delicate operation, delicate yet physically pleasing. I have a feeling that over time, that delicateness could compromise its operation. Yet I reckon Apple has proven its worth by switching it perfectly a million times without any problems, likely using a modified drawer-opener on loan from Ikea.
But it’s when you reach in your pocket and switch the switch blind, probably pushing it at an unseemly angle, that problems are likely to occur, unbeknownst to Apple.
That’s why I thought of the Ikea robot today. And that’s the bit of the iPhone 3GS that I think is most likely to break. You have been warned.
My name’s Dan and I read my own blog
It’s a bit sad, isn’t it? But I subscribe to my own blog in Google Reader. And I read most of the posts that appear there.
Before publishing a post, I’ll preview it, allowing me to assess the prose before it is exposed to its audience, however small that audience may be. This gives me the opportunity to correct any issues with flow, and any howlers I may have made along the way.
And some time after I’ve hit the Publish button, the post will pop up in Google Reader. And invariably, I’ll read it in its entirety. Occasionally, I’ll spot a mistake that slipped through the net—I find my own work the most difficult to proofread, as I’m too close to it—but more importantly, I’ll read it as an audience member, given the delay since having read it.
And I like little better than stumbling upon old posts from years back to see what I had to say. I’m happy to say that my writing has improved over the last five years, as has by my grammar. Notwithstanding, I enjoy the things I had to say back then.
I’d be interested as to whether others out there read their own work.
Stats without context, war without tears
Statistics without context annoy me. Sometimes it’s done innocently, the author not appreciating the value of comparators to give the reader an understanding of the size of the problem or the scale of the sums of money involved. At other times, usually in the world of journalism, the lack of context adds weight and impact to the story.
I’ve been following Russell Tanner on Twitter of late, in advance of his hour atop the fourth Trafalgar Square plinth this afternoon. His campaign is to encourage Coca-Cola to use its mighty distribution network to help distribute aid to needy children—a more than admirable and worthwhile campaign. (As an aside, Coca-Cola looks odd written down in a non-swirly font, particularly given the fact that it has pretty much been re-branded exclusively as Coke in the 20+ or so years since I was a big Coke user.)
Russell recently tweeted that four children die in Africa every minute. It was without context—in part, no doubt, due to the 140-character limit, and in part to make the statistic stand alone, the lack of context making the message all the more powerful. A good result, in this case.
But I have no idea, for example, how this child mortality number compares with that of India, China, Europe, the USA. As you can imagine, Africa’s rate is high. It accounts for 40% of the world’s infant deaths, yet only 24% of the world’s births, according to the INED. (I’m not sure of the definition of children in the above tweet, btw.) And at number two, Afghanistan is the only non-African country in the bottom 25 countries in the world, as ordered by infant mortality rate, Sierra Leone bottoming the list with 16.0% of infants dying before the age of one. (A further 11.8% die before they reach five.)
In fact, an infant in Sierra Leone is 33 times more likely to die before their first birthday than one in the UK, or 55 times more likely than one in Iceland, the country with the lowest infant mortality rate at 0.29%. Some of these statistics are equally powerful, possibly more so, than the fact that four children die in Africa every minute.
Newspapers are also guilty of failing to give context to statistics, particularly when quoting government financials. Most of us can’t get our heads around the huge sums of money quoted in news articles about economic cash injections (hundreds of billions of pounds/dollars, trillions even), NHS expenditure/waste, overall government IT spend, pan-Whitehall budget cuts etc. As soon as you read about £100m being wasted in some area of government, the anger is there. And while I don’t condone such wastage, without context it is meaningless, particularly given the emotion that the trailing zeros bring about (especially as they’re usually printed in full, allowing the reader to pore over each and every one). £3 for every UK tax payer, or £200 for every civil servant, or 0.1% of the overall NHS budget, would give valuable context.
On the other hand, when you’re dealing on a daily basis with such large numbers because of the very nature of the job you do—whether you work at HM Treasury itself or one of the big delivery or policy departments—you can become immune to the scale of the numbers involved, possibly to the detriment of your judgment. If IT suppliers quoted for work in numbers of NHS beds, rather than the more traditional thousands of pounds, would their prices go down?
So please add context when quoting numbers, particularly if the lack of context is likely to cause a disproportionate reaction from the reader.
Bon appetit
Tonight, a good friend of mine and someone who used to be a good friend of mine are out to dinner. I am happy they have found each other’s friendship through me, but miss the latter hugely.
Bon appetit.
The calendar headache and sullied applications
Most applications start off simple. And as they grow, morph and change direction, complexities come along that satisfy the user requirements, while compromising the purity of the application.
The purity of Excel has been compromised by the introduction of Pivot Tables, for example (pivot!).
I often struggle to comprehend the enormity of calendar applications; and get frustrated at how they don’t necessarily behave as expected in certain quirky scenarios. And this is a symptom of that very problem.
Basic calendar management is easy. The business requirements are simple to define (ability to schedule stuff and invite people), and they can be developed without any compromise. But then you strap on some other requirements—calendar delegation, ability for invitees to invite others, management of re-scheduled entries—and suddenly the requirements are not obvious, and their implementation Is likely to impact on the original functionality.
Who is allowed to edit a meeting request? Who gets notified if a meeting is changed? (How) do invitees get notified of additional or removed invitees?
Calendars seem to me the most complex applications that we use on a day-to-day basis. They have so many branches that sully the core, but that are necessary to the richness and usefulness of the application.
I often imagine the various teams at Microsoft, the Oulook team neurotic and literally pulling their hair out at the compromises they need to make; and the Excel team, walking with their heads held high at the relative purity of their application, with the exception of the Pivot Tables and Styles sub-teams, sat embarrassed in the corner at having marginally sullied purity (along with the guy who made 29 February, 1900 into a recognisable day).
iTunes enhancements
There are a couple of enhancements that Apple should make to iTunes that would make my life a whole lot easier.
First of all, please allow the de-duplication of tracks without compromising the make-up of albums. I don’t want five identical copies of Blur’s Girls and Boys. As well as eating up memory unnecessarily (a minor inconvenience given the amount of storage available), it means that randomising the order of tracks on the iPod/iPhone/iTunes results in that track being played many times over. (I’m currently going through the songs on my iPhone in track name order (from A–Z), exacerbating the problem, to my exasperation.)
I don’t mind there being different versions of the same song. But if there are two tracks with the same song name, within a second or two in length, with similar musical make-ups, then give the option of creating a master and a slave copy, and managing the music that way. (If the master is deleted, then replace one of its slaves with the master and re-point all of the other slaves etc.)
And please have the concept of a device-independent star-rating and play count. When I change my device, I shouldn’t have to re-star all of my music; and my 25 most played tracks shouldn’t be reset.
Can you sort it, Apple? Well, can you?
Formatted hashtags
Paul Clarke speculates here about the usefulness of Twitter, with a specific focus on whether its penetration can be used to local effect: in reporting weather conditions or traffic disruption, for example.
He cites a couple of examples of hashtags (#uksnow, #uktraffic), both of which require(d) a specific syntax following the hashtag. For example, #uktraffic needs to of the form:
#uktraffic [road] [where: jcts or place] [direction] [description] RT&seewhathappens
By submitting hashtags in that form, it enables them to be parsed for use in other applications, allowing them to be mapped, summarised etc.
With all due respect, I don’t think the Twitter community is sufficiently diligent to obey what seem like simple instructions such as this. Yes, they can probably remember the hashtag. But I’m sceptical as to whether they can remember the specific items that follow, let alone the order in which they need to appear.
For syntax-dependent hashtags like this to work, there needs to be a mechanism by which they can be registered, complete with the required syntax. That way, end users can subscribe to such hashtags, allowing their client applications to prompt them with the required syntax once they’ve entered that hashtag. Much in the way that Excel prompts you with the arguments needed for a formula that you’ve started to use. (Hell, even I never remember the order in which SUMIF arguments should be entered.)
Without this, the hashtags might be used, but the data they generate will be next-to-useless.
My most re-tweeted
Yesterday evening was inspirational. I solved a problem that was posed to the twitterati at large earlier in the day, a solution that I thought might be useful to the general Twitter community, and which had certainly challenged my own technical limits.
I awoke to a whole bunch of re-tweets (ten in total, which is about 400% more than my previous record, I reckon) which made me giddy. Giddier even than I had been the previous evening at my relative technical prowess at having solved the problem, which is saying something.
Twitter is lovely. It gives a sense of community which your life doesn’t necessarily afford; and it allows you to share ideas and innovation with people of a relatively like mind, and for them to spread the word.
The tool I created? A way of creating a Google Reader feed from your password-protected Twitter feed—using Yahoo! Pipes. Probably beneath most of my audience; but an immense source of pleasure for me.
Your Twitter feed in Google Reader. FTW
@olibarrett and @hubmum gave the following request on Twitter earlier.
I would like a weekly or daily email digest of all of the URLs the people I follow share on Twitter. How could we build this?
At first, I resorted to my trusted Twoogle solution, trying to get feeds aggregated in Google Spreadsheets and then parsing and filtering as necessary.
But this just wasn’t practical. Particularly when the number of people followed increases (190 and 246 for oli and hub respectively). (My Twoogle solution is fine for up to 20 followees.)
So I resorted to Yahoo! Pipes. And before tonight, I was a Pipes virgin. It’s not the most intuitive app. in the world, but eventually I got there, delayed both by their unintuitive naming convention and by my parallel-running the experimentation with the heating up of the scrumptious meatballs my wife had made earlier.
Anyway, here’s a summary of what I did.
I had to create two pipes. The first gave me a Yahoo! Pipes URL of an authenticated RSS feed of my own Twitter stream, with my Twitter password embedded and fully visible in the URL. The second took that RSS feed as the input, filtering the feed to keep only the posts containing http. So the output was an RSS feed of tweets containing links.
Now RSS feeds only generally contain 20 items. This one contained less, because it contained the subset of 20 items that contained links. Not ideal. But beautifully, Google Reader remembers. So you can use the output of the second Pipe as a Google Reader feed, and it will keep amassing all the tweets containing links. I think.
(BTW, bypass step 2 above, and you get your entire Twitter feed in Google Reader. Neat!)
So, here are the steps to address the original request. I’m going to try to give noddy steps to prevent loads of questions. Apologies if they come across as patronising to the more technically savvy. (Bear in mind, I’m beyond the edge of my knowledge-base here.)
Creating your authenticated feed
- Grab and copy your Twitter RSS feed’s URL. To do this, either
- Go to your feed page in Twitter, right-click the RSS feed link on the right-hand side, and hit Copy link location, or whatever your browser’s equivalent is
- Or use http://twitter.com/statuses/friends_timeline/MyUserName.rss, replacing MyUserName with, er, your user name
- Go to http://pipes.yahoo.com/pipes/pipe.info?_id=ChgxzmTd2xGblhSrnkartA
- Enter your password, username and the above-copied feed address in the corresponding fields, obeying the specific instructions for escaping special characters. Also remember to remove the http:// from your feed URL
- Hit Run Pipe
- Your feed will appear on that page. Right-click the Get as RSS link that appears, and hit Copy link location (or your browser’s equivalent)
- Paste this into Notepad for future use
That URL is an authenticated feed for your Twitter stream, so keep it safe. (You’ll notice that it contains your password for all to see. Don’t worry, though. This is not an issue.)
Now to filter out the posts without links. For this, you’re going to have to create your own Pipe from scratch. Don’t worry though—I’m right beside you.
- Go to Yahoo! Pipes: http://pipes.yahoo.com/pipes/
- Log in if necessary using Yahoo! credentials. (If you’re a Yahoo! virgin, you’ll have to create an account.)
- Hit Create Pipe
- From the Sources section on the left, drag Fetch Feed into the gridded working area, placing it near the top of that area
- Copy and paste the URL that you saved from the first set of instructions into the URL box
- Now expand the Operators group on the left-hand side and drag Filter across to the working grid, placing it just below the Fetch Feed module that you’ve just completed
- Using the little blobs at the top and bottom of the modules, connect the bottom of the Fetch Feed box to the top of the Filter box
- Change the Filter module to say “Permit items that match all of the following. item.description contains http”
- Connect the bottom of the Filter box to the top of the Pipe Output box
- Save the Pipe, giving it a suitable name (Twitter links?)
- Hit Run Pipe. This will give you the feed that you want, with links at the top representing different options
- Hit the “+ Google” button, and the feed will be added to Google Reader
And we’re done.
If you want your full Twitter feed in Google Reader, just do the first set of steps and use that URL as your Google Reade feed address.
House warming soirée
If you’re reading this, I’m hoping you’ve noticed that we’ve moved. Five years to the day after our birth.
That’s right: Tangential Ramblings was born on 6 July, 2004 as a means of documenting our time in New York which started six days later. And since then, we’ve had (suffered?) 1,512 posts that have attracted 1,968 comments.
We’ve moved to make way for the professional offering of osirra consulting, which can be found at osirra.com. Please pop along there to see whether any of the services are of interest to you. And please update your bookmarks to http://blog.osirra.com and your feed addresses to http://feeds.feedburner.com/TangentialRamblings to make sure your feed is always up-to-date.
And welcome to our new home. Take a look around; and if you go to the toilet, please put the seat down when you’re done. Thanks.
A wonderful life
Tonight I’m sat on our balcony having just devoured a delicious mountain of self-barbecued meat and scrumptious wife-prepared salad. The blackbirds are hopping around the freshly-watered lawn below in search of aquaphobic worms; and delightful engine noise interrupts the evening every 90 seconds or so, as planes make their final descent, returning holidaymakers to Heathrow.
The sun has dipped over the house and now drenches the tops of the trees and the houses opposite with its deep orange sunlight. And the breeze is sufficient to make the trees rustle and sway, but is not so strong as to interrupt my pleasure at the passage of the evening. Meanwhile my daughter sleeps soundly and safely in her cot.
Life is good.
We’re moving
So, five years after osirra.com was created as the home of Tangential Ramblings, it has moved house. Only round the corner though. Please read on if you’d like to continue subscribing to the blog.
Tangential Ramblings has moved to http://blog.osirra.com. The plan is to use the main http://www.osirra.com domain for an altogether more professional presence, advertising my company’s offerings and being the home of my less bizarre side; and there won’t be much in the way of cross-linking from the sublime to the ridiculous. For the next few days, it will continue to point to Tangential Ramblings, to allow you a few days to accommodate the change.
The new sub-domain (http://blog.osirra.com) is already working, so please change your bookmarks and subscription details so that you’re not caught looking for the old blog come the big switch. All being well, the new http://www.osirra.com site will be going live on Monday, the fifth anniversary of the domain.
Please comment if you have any questions. And welcome to the new home—grab yourself a glass, and cheese and pineapple on a stick.
Monday 6 July, 2009. Statistically significant
I’m sure you’re all aware of the double significance of Monday. But I thought I’d document it for completeness and for the heathens among you.
Monday 6 July, 2009 will mark the fifth anniversary of this humble little blog. And it will also be the 40,000th day since the start of the 20th century. *
The latter fact is, of course, significant given that Excel calculates time in days using 1 January, 1900 as its point of reference. (50,000 will occur on 21 November, 2036, in case you want to book a venue in advance.)
Happy fifth birthday for Monday, little blog. And happy 40,000th birthday, Excel.
* Actually, Tuesday 7 July, 1900 is the 40,000th day since the start of the 20th century. But Excel purposely included a bug making 1900 a leap year (it wasn’t; remember?) to comply with other flawed date systems. So Excel thinks 6 July, 2009 is represented as 40,000, even though it should be 39,999.