Jessica London

Recently, I started getting unsolicited email from a company called Jessica London. They sell women’s clothes and they seem to think that I’d be interested in all of their latest offers. I have no idea where they got my email address from. I know I have never dealt with them so it’s not a case of me forgetting to uncheck the “please spam me” box when registering with them or anything like that. In fact they have been using an email address that I never use for those kinds of purposes.

But I think they’re a real company. So today I decided I’d use the unsubscribe link in their email to see if that would actually remove me from their mailing list. I know this is a risky strategy, but I like to live on the edge sometimes.

The link took me to a page where I could tell them why I was unsubscribing. There was a series of radio button – which means I could only select one of them. It’s interesting to note the reasons that they think it’s worth tracking.

  • Receive too many emails from Jessica London
    Well that’s true, but I don’t think it really gets to the heart of the matter
  • Email content wasn’t relevant to me
    Also true, but misses the point
  • I no longer plan to shop at Jessica London
    I never had any plans to shop at Jessica London
  • I am cutting back my spending on clothing
    That’s not the case. I’ve never spent that much on clothing
  • I prefer to stay connected via Social Media (Facebook, Twitter, etc.)
    I like to connect to people via social media – but not to brands that I have no interest in
  • Other

In the end, I chose “other”, hoping that they would then give me a text box where I could write “because you’re a bunch of obnoxious spammers”. But no such box appeared. So they just know that I had “other” reasons for unsubscribing.

I was left with no alternative other than to write this blog post in the hope that Google will help them discover my actual reason for unsubscribing.

Public Wifi

We’re finally reaching the stage where public wifi is becoming ubiquitous in London – at least when you’re indoors. It’s now quite strange to be somewhere that doesn’t have wifi available. But as it’s all supplied by commercial operators, it can all get a bit confusing. I know a few people who leave wifi turned off on their smartphones because they’d rather rely on the 3G connection (which always works) than a wifi connection that doesn’t work because they haven’t logged on to the providers service.

It would be nice if these providers all just used the standard WEP or WPA security protocols. These both prompt you for a password when you connect to the network. Your device can then store the password and always connect you whenever you’re within range. That’s probably how you have your home wifi set up.

But that’s not how the commercial providers do it. They want your to actually log in to the network. That might be so that they can trace each users’ individual network traffic. Or, sadly more often, it’s probably because they want to show you a web page covered with lots of lovely adverts (or collect your email address so they can spam you). This is a rather broken approach as it assumes that the first network request that you make will be to a web page – so that they can interrupt the request and show you their login page instead. Often your first network request might be an app (perhaps Twitter or Foursquare) which won’t know what to do when it gets a login page back rather than the app-specific data that it was expecting.

Recent Android versions try to deal with this (perhaps other platforms do too). As soon as you connect to a network, they make a request and try to work out whether you need to log in. If you do, they will tell you so. It’s all rather non-standard, but it’s the device makers trying to make the best of a bad situation.

If that was the worst of it, then public wifi wouldn’t be too bad. Most people would be happy to use it. But there are two other things that some wifi operators do which serve no purpose other than annoying people.

Remember I mentioned how the network will interrupt your first request and redirect it to the login page? Once you’ve logged in, a polite service will complete your original request and redirect you to the page you were originally trying to visit. A rude service (and there are plenty of them about) will complete the request by redirecting you to another page on their web site – assuming, no doubt, that you can never show people too many adverts.

That’s really annoying. But there’s one more thing that wifi operators do which makes that pale into insignificance.

They make you log in again after a certain period of time. This makes me really angry. Picture the scene. You go to a pub and the second thing you do (after buying a round, of course) is to check in on Foursquare. For that you need to connect to the network, so you jump through all the connection hoops. Then you put the phone back in your pocket and start to enjoy a conversation with your friends. Half an hour later it becomes vital that you know the exact date that “Another Brick in the Wall (Part 2)” reached number one. So you reach for your phone to look it up on Wikipedia. Only to find that you need to go through all the log in rigmarole again.

This kind of experience is commonplace. And it leads to one of two outcomes. Either people turn their wifi off because it’s all too much of a faff (and then venues start to decide that it’s not worth having wifi as no-one uses it) or, alternatively, people keep jumping through the hoops and come to believe that this broken and frustrating experience is just how public wifi has to be. And that’s just not true.

Do you run public wifi? How is it set up? Please consider making it as easy as possible for people to use your wifi. What’s the point of annoying your customers?

OpenTech 2013

Yesterday was the (almost) annual OpenTech conference. For various reasons, the conference didn’t happen last year, so it was good to see it back this year.

OpenTech is the conference where I most wish I could clone myself. There are three streams of talks and in pretty much every slot there are talks I’d like like to see in more than one stream. These are the talks that I saw.

Electromagnetic Field: Tales From the UK’s First Large-Scale Hacker Camp (Russ Garrett)
Last August, Russ was involved in getting 500 hackers together in a field near Milton Keynes for a weekend of hacking. The field apparently had better connectivity than some data centres. Russ talked about some of the challenges of organising an event like this and asked for help organising the next one which will hopefully take place in 2014.

Prescribing Analytics (Bruce Durling)
Bruce is the CTO of Mastodon C, a company that helps people extract value from large amounts of data. He talked about a project that crunched NHS prescription data and identified areas where GPs seem to have a tendency to prescribe proprietary drugs rather than cheaper generic alternatives.

GOV.UK (Tom Loosemore)
Tom is Deputy Director at the Government Digital Service. In less than a year, the GDS has made a huge difference to the way that the government uses the internet. It’s inspirational to see an OpenTech stalwart like Tom having such an effect at the heart of government.

How We Didn’t Break the Web (Jordan Hatch)
Jordan works in Tom Loosemore’s team. He talked in a little more detail about one aspect of the GDS’s work. When they turned off the old DirectGov and Business Link web sites in October 2012, they worked hard to ensure that tens of thousands of old URLs didn’t break. Jordan explained some of the tools they used to do that.

The ‘State of the Intersection’ address (Bill Thompson)
Bill’s talk was couched as a warning. For years, talks at OpenTech have been about the importance of Open Data and it’s obvious that this is starting to have an effect. Bill is worried that this data can be used in ways that are antithetical to the OpenTech movement and warned us that we need to be vigilant against this.

Beyond Open Data (Gavin Starks)
Gavin has been speaking at OpenTech since the first one in 2004 (even before it was called OpenTech) and, as with Tom Loosemore, it’s great to see his ideas bearing fruit. He is now the CEO of the Open Data Institute, an organisation founded by Tim Berners-Lee to the production and use of Open Data. Gavin talked about how the new organisation has been doing in its first six months of existence.

Silence and Thunderclaps (Emma Mulqueeny)
Emma has two contradictory-sounding ideas. The Silent Club is about taking time out in our busy lives to sit and be still and silent for an hour or so; and then sending her a postcard about what you thought or did during that time. The Thunderclap is a way to get a good effect out of that stack of business cards that we all seem to acquire.

Thinking Pictures Paul Clarke)
Paul takes very good photographs and used some of them to illustrate his talk which covered some of the ethical, moral and legal questions that go through his mind when deciding which pictures to take, share and sell.

1080s – the 300seconds project (300seconds)
The 300 seconds project wants to get more women talking at conferences. And they think that one good way to achieve that is for new speakers to only have to talk for five minutes instead of the full 20- or 40-minutes (or more) that many conferences expect. The Perl community has been using Lightning Talks to do this with great success for over ten years, so I can’t see why they shouldn’t succeed.

Politics, Programming, Data and the Drogulus (Nicholas Tollervey)
Nicholas is building a global federated, decentralized and openly writable data storage mechanism. It’s a huge task and it’s just him working on the project on his commutes. Sounds like he needs a community. Which is handy as the very next talk was…

Scaling the ZeroMQ Community (Pieter Hintjens)
Peter talked about how the ZeroMQ community runs itself. Speaking as someone who has run a couple of open source project communities, some of his rules seemed a little harsh to me (“you can only expect to be listened to if you bring a patch or money”) but his underlying principles are sound. All projects should aim to reach a stage where the project founders are completely replaceable.

The Cleanweb Movement (James Smith)
I admit that I knew nothing about the Cleanweb Movement. Turns out it’s a group of people who are building web tools which make it easier for people to use less energy. Which sounds like a fine idea to me.

Repair, don’t despair! Towards a better relationship with electronics (Janet Gunter and David Mery)
Janet and David started the Restart Project, which is all about encouraging people to fix electrical and electronic devices rather than throwing them out and buying replacements. They are looking for more volunteers to help people to fix stuff (and to teach people how to teach stuff).

CheapSynth (Dave Green)
Dave Green has been missing from OpenTech for a few years, but this was a triumphant return. He told us how you can build a cheap synth from a repurposed Rock Band game controller. He ended his talk (and the day) by leading the room in a rendition of Blue Money.

As always, OpenTech was a great way to spend a Saturday. Thank you to all of the organisers and the speakers for creating such and interesting day. As I tweeted during the day:


But I spent yesterday hacking on something. More on that later.

MPs’ Web Sites

When I set up Planet Westminster in 2006 I thought it would be a relatively simple project to maintain. Over the years, more and more MPs would start blogs. Every couple of months I’d add the new ones and everything would be great.

It hasn’t worked out like that at all. MPs’ web sites have proved to be really difficult to keep track of.

The problem is, of course, that the vast majority of MPs have absolutely no idea how web sites, blogs or web feeds work. That’s to be expected. What’s less expected is that many of them seem to get round that problem by delegating the work to people who also have no idea how web sites, blogs or web feeds work.

I’ve just done a clean-up of the feeds I’m currently monitoring. Here are some of the problems I’ve dealt with.

A few MPs (including Douglas Carswell and Caroline Lucas) changed the address of their web feed. Just changed it. No notification as fas as I can see. No attempt to redirect the old address to the new one. Just an old address returning a 404 error. Anyone who was subscribed to the old address would have just stopped getting updates. It’s almost like they don’t want people to follow what they have to say.

Ed Miliband’s web site has just ceased to exist. It now redirects you to the main Labour Party web site. Because the leader of the party obviously has no constituency responsibilities. Or something like that.

John McDonnell seems very confused. In 2007 he had a web site at In 2010, he was at john-­mcdonnell.­net. Both of these sites are now dead and he’s at It’s like no-one has told him that you can reuse web site addresses. I wonder what he’ll do once he’s run out of variations of his name on different top-level domains.

Eric Joyce has just lost control of his domain. His address currently goes to an unfinished web site campaigning for “John Smith for State Senator”. It doesn’t look as though Joyce realises this as he’s still promoting the web site on his Twitter profile.

Then there’s Rory Stewart. His web feed was returning data that my RSS parser couldn’t parse. Taking a closer look, it turned out that it was an HTML page rather than RSS or Atom. And it was an HTML page that advertised an online Canadian pharmacy pushing Cialis. Not really what an MP should be promoting.

Stuff like this happens all the time. MPs need to take more notice of this. And they need help from people who know what they are talking about. My theory (and it’s one that I’ve written about before) is that MPs’ web sites and blogs are often overcomplicated because they are developed by companies who come from a corporate IT background and who dismiss the possibility of using something free like WordPress and over-engineer something using tools that they are comfortable with. It can’t be a coincidence that many of the worst MP web sites I’ve seen serve pages with a .aspx extension (sorry – only geeks will understand that).

I’m going to repeat an offer I’ve made before. If any MP wants a blog set up for them,then I’m happy to help them or to put them in touch with someone who can help them. It needn’t be expensive. It needn’t be complex. But it can be very effective. And it will work.

Update: Eric Joyce replied to me on Twitter. He said:

Thanks. It’s being worked on and they seem to have pointed it at an obvious specimen page.


Did you know that the word “gullible” doesn’t actually appear in the OED?

A lot of people I know spend a lot of time poking holes in tabloid stories. It’s fun hobby for all the family. The tabloids are so bad at checking facts that it’s usually easy to find the basic flaws in things that they print. The internet makes it so easy to check facts that there’s no excuse not to do it. Oh, sure there’s a lot of nonsense out there too but it’s usually pretty simple to separate the facts from the nonsense.

Which is why it’s disappointing when people just don’t bother.

This image was all over Twitter and Facebook when I woke up this morning. It’s a great image. The idea of a sporting hero like Bradley Wiggins having a go at Piers Morgan like that is brilliant. It would be fantastic if it was true.

It’s not though.

And it’s easy enough to find out what actually happened. Both men have public Twitter feeds, it’s just a case of searching back to find the tweets in question. It took me a couple of minutes to find this exchange (it’s from a week ago).

And yes, I was very disappointed @bradwiggins didn’t sing the anthem either. Show some respect to our Monarch please!

— Piers Morgan (@piersmorgan) August 2, 2012

.@piersmorgan I was disappointed when you didn’t go to jail for insider dealing or phone hacking, but you know, each to his own @bradwiggins

— Colm Quinn (@mrcolmquinn) August 2, 2012

See that. The reply isn’t from @bradwiggins at all, it’s from @mrcolmquinn. And he wasn’t even pretending to be Bradley Wiggins or anything nefarious like that. He just included @bradwiggins’ name in the tweet so that Wiggins would see what was going on.

I’m not sure what happened after that. I think that for almost a week nothing much happened. At some point those two tweets were turned into the image above. I don’t who created the image or why they did it. I don’t even know whether they misread the tweets and genuinely thought that the reply came from Wiggins or whether they were trying to cause trouble.

I do know that overnight last night people started to share the image on Facebook and Twitter. And that pretty much everyone who shared it didn’t bother to do the two minutes of research it would take to find out what really happened.

The reply was a good one. Morgan certainly deserved it for being such an idiot about the national anthem. And I’m glad that it got a wider audience. I just wish that people weren’t taken in so easily when they see something that they want to be true.

The next time you go to share something like this with your friends, why not pause a couple of minutes and find out whether or not it’s actually true. Prove that you’re better than a tabloid journalist.

Oh, by the way, it’s not true about the word “gullible” either.

Modern Perl for Non-Perl Programmers

Normally I keep my Perl posts over on my Perl blog. But although this post is about Perl, the regular readers of my Perl blog aren’t really the target audience.

That’s because I’m running a training course that is aimed at programmers who don’t use Perl. If you’re a programmer who is interested in learning about Perl, then you should have a look at Modern Perl for Non-Perl Programmers.

It’s a one day course at Google Campus in London on Saturday 6th October. Tickets are £30 and you can book your place by clicking the button below.

Eventbrite - Perl School: Modern Perl for Non-Perl Programmers

Android Applications

For the last two years I’ve been using an HTC Desire. In the last few days I’ve upgraded to an HTC One X. Whilst I liked the Desire a lot, one thing that really let it down – the lack of space to install apps. I spent most of the last year with the “short of space” notification on. At times I was running a “one out, one in” policy where I could only install a new app if I removed one first.

The One X has a lot more memory, so I’m hoping that I won’t have so much problem installing apps and can try some new and interesting ones. I’ve started by installing what I consider the essential apps.

Then I installed a few apps that I used to use, but that I had to give up when I ran out of space on the Desire:

There’s one app that I used to use that I can no longer find. I think it was called Movie Finder and it listed all the films that were on at all the cinemas in London (or, perhaps, the UK). If anyone knows what it was – or can recommend a replacement – then please let me know.

I’ve installed some semi-random apps that caught my eye:

  • Gigbeat – Who seem to have beaten Songkick to producing an app that uses Songkick data.
  • Instagram – But it currently doesn’t support the camera in the One X. I’m sure that’ll come soon.
  • Night Clock
  • VirginMedia TV guide – currently just a TV guide, but it’ll be awesome when I get a Tivo as you can program it remotely.

That’s as far as it goes so far. But the Android market (sorry, I mean the “Google Play Store”) is now huge. I’m sure I’m missing out on interesting and useful apps. Or, perhaps, there are better apps available to replace the ones I’m currently using. Is Tweetdeck still the best Twitter client? Is there a better augmented reality app than Wikitude?

What am I missing out on?

Internet Security Rule One

Internet security rule one is “do not share your password with anyone”. There should be no exceptions to this rule. If anyone asks you to share your password with them, your answer should always be no.

Sometimes people say “oh well, it’s only a password for [some unimportant web site] – what harm could it do?” And, of course, perhaps giving someone your password for that particular unimportant web site won’t do any harm. But it’s a chink in your armour. By revealing your password for that site you’ve set a precedent. You just might be that little less protective the next time that someone asks you to share your password.

It’s called the Password Anti-Pattern and its shortcomings have been well-documented for several years. I wrote about it with specific reference to Twitter a few years  ago.

There are two levels of problem here. Firstly there’s the fact that you’ve given a third party complete access to interact with the web site for you. If it’s your Twitter password you’ve given away then the third-party service can do anything to your Twitter account that you can do yourself – right up to closing your account.

I assume that everyone can work that out for themselves. But the second problem is more subtle. Obviously any web site where I have an account is storing my password somewhere (probably in a database). And any third-party service that I want to share my password with also stores that password. So what’s the difference?

The difference is that the original web site is (hopefully) following basic password storage principles and storing my password using non-reversible encryption. The third-party site can’t do that. The third-party site needs access to the plain-text version of the password so it can be used to log on to the original web site. Oh, sure, they’ll hopefully store the password in their database in some encrypted format, but it will have to be a reversible encryption so that they can get a plain-text version of it back when they need to use it to log in to the original site.

So if someone somehow gets a copy of the original web site’s database, your password is held in some industrial-strength non-reversible encrypted format. But if they get a copy of the third-party service’s database, they’ll have your password in a far less secure format. If, at the same time, they manage to grab the third-party service’s source code then they’ll know exactly what process to follow to get the plain-text version of your password from the encrypted version.

Of course, you’d hope that their data centre is secure and no-one will ever steal their database or their source code. But it could happen. And the more passwords that you share, the more chance there is that someone, somewhere will get hold of data that you’d rather not have.

There is, of course, a way round this. It’s called OAuth. With OAuth, you don’t need to give anyone your password. You can authorise certain applications (or services) to take certain actions on your behalf on particular web sites. So, for example, I can let Twitterfeed post to my Twitter account without giving it my password. And that’s all it can do. It can’t follow new people, maintain my Twitter lists or close my account.

Twitter is a good example. In 2007 and 2008 a whole ecosystem grew up around Twitter. Many services offered cool and interesting services to add on to your basic Twitter account (Twitterfeed was one of them). But they all needed your Twitter username and password, so anyone who was at all security-conscious couldn’t use them. But in 2009 Twitter implemented OAuth. And, a few months later, they turned off the old authentication scheme so that you now only use OAuth to talk to Twitter.

The remaining problem is that OAuth only works when the original web site has implemented it. And that’s quite a lot of work. There are still many web sites out there which have lots of useful information out there locked behind a username and password with no other way to access it.

All of which brings me to what prompted this post. Earlier today a friend pointed me at a web site which provided a really useful service. But when I looked, it did it by asking for my login details for another web site. I’m not going to name either of the sites involved (my friend works for the third-party site and I don’t want to embarrass her), but it was a really useful service and it made me sad that I couldn’t use it.

Of course, as my friend explained, they had no alternative. The original site didn’t have OAuth support, so the only way they could get hold of the useful data was to log in as the user.

To my mind, that’s not a good reason for implementing the password anti-pattern. To my mind that’s where you say “oh well, that was a good idea – shame it’s not going to work” and start to lobby the original web site for some kind of OAuth support. But that’s not likely to happen as the point of this service is to compare different offerings and make suggestions of how the user could save money by switching to competitors. I can’t really see the original companies being keen to support that.

So we’re left with a situation where this third-party has implemented the password anti-pattern. And, as far as I can see, they’ve made quite a nice little business out of it. But makes me really uncomfortable to see what they’re doing. I’m pretty sure that I can trust them with my data, but I’m not prepared to compromise my principles in order to access this useful service. They are teaching people that it’s okay to share their passwords. And it’s not. It never is.

And it doesn’t stop with this company promoting their own service. On their site they have testimonials from a number of well-known web sites, newspapers and television programmes saying what a wonderful service it is. They have technology correspondents, who I would expect to know better, singing their praises and encouraging people to sign up for the service – telling people to break the first rule of internet security.

It all makes me rather depressed.

Look, I’ll tell you what. I’ve got a really good idea for an add-on for your online banking service. Just leave the login details in a comment below and I’ll set it up for you.

Tracking Packages

Last week I ordered a new laptop. Yesterday, Dell’s web site told me that it had shipped. And, an hour or so later, they gave me a link to track the delivery on the UPS web site.

Now that link is fun of course. But refreshing the page dozens of times a day gets a bit boring. So I started to look for alternatives. Firstly, UPS have a service that sounds like it emails you whenever the status changes. So I set that up. I got an initial email at that point, but nothing more – even as the status changed a couple of times. Reading the description more closely, it seems it only sends an email a) when there’s a delay, b) when the package is delivered and c) when explicitly requested on the web site. So that’s no good.

Of course, what I really wanted was a web feed. Something that I could subscribe to in Google Reader that would always show me the latest status. Being a geek I started to think about a writing a program that would grab the information from the web site periodically and turn it into a web feed. But I stopped myself before I started writing any code. “Surely,” I thought to myself, “I can’t be the first person to want this. Something like this must already exist.”

I was right, of course. A quick Google brought me to Boxoh. Give them a tracking number (and it’s not just UPS – they also understand FedEx, DHL and USPS) and they will not only give you the web feed that I wanted, but also a Google map showing the progress of your package. How cool is that?

There appears to be no way to embed the map on another web site, but that’s the only fault I can find with the site.

Here’s the progress that my laptop is making. It started in Shanghai, before travelling to Incheon in South Korea and Almaty in Kazakhstan from where it flew to Warsaw, which is where it currently is. On Monday it’s due to arrive in Balham.

I love the fact that I can track it so easily. And I’m more than a little jealous of its travels.

Did Twitter Censor #GodIsNotGreat?

[Executive summary: Betteridge’s Law (probably) applies]

The Twitter furore over the #GodIsNotGreat hash tag has pretty much died down now, but there’s one branch of the debate that is still getting comments and retweets. Here’s an example from johnwilander.

#GodIsNotGreat pulled from trends because christians protest. But #ReasonsToBeatYourGirlfriend was allowed. Stay classy, @Twitter.

As I mentioned a couple of days ago, the hashtag vanished from the list of global trending topics on Friday morning. And this conspiracy theory leapt up almost immediately. As far as I can see, none of the people repeating this claim have any evidence to back it up – which is more than somewhat ironic given Hitchens’ evidence-driven view of the world.

The argument seems to go like this: At one point the hashtag was trending. Then Christians got upset and starting making death threats aimed at the people who started the trend. Soon after that, the hashtag was no longer trending. Therefore Twitter must have given in to Christian bullying and censored the hashtag.

Whilst it all sounds frighteningly possible, I hope I don’t have to spell out the flaws in the logic. If you can’t work it out for yourself then I recommend the Wikipedia article on Correlation does not imply Causation.

I could be wrong here. There might be some irrefutable piece of evidence proving conclusively that Twitter deliberately censored the hashtag. If there is, then I haven’t seen it and I’d be grateful to anyone who could bring it to my attention.

There is, however, some evidence that Twitter didn’t censor the hashtag. On Friday morning, as the debate still raging, a Facebook friend in Canada pointed out that it was still trending there. In the middle of the afternoon someone pointed out that it was still trending in San Francisco. So if Twitter were censoring it, they weren’t doing a very good job. There’s even someone who apparently works for Twitter saying that they didn’t do it.

Of course, none of this is conclusive evidence that Twitter didn’t censor the hashtag. But balancing some evidence for non-censorship against absolutely no evidence at all for the censorship I know which side I come out on.

All of which leaves us searching for an explanation for the sudden disappearance. And, to be honest, I don’t think we really need to look too hard. Things stop being trending topics all the time. Things have to drop out of the list so that new things can come in. Otherwise the list would constantly be full of nonsense about Justin Bieber and Twilight. The Twitter trending topics algorithm can’t possibly just measure the popularity of topics. That would be incredibly dull. Instead, what it does is to look for changes in popularity. A steady buzz of the same few million people talking about a particular topic doesn’t get noticed, but a sudden increase in the number of people discussing the same topic does. The Buffer blog has a good explanation of this and the official Twitter blog says much the same thing.

I’m sure that this won’t convince the conspiracy theorists. “Ah,” they’ll say, “That’s all very convenient. But that just gives Twitter an easy way to cover up their censorship..” Which is true, I suppose, but hardly a basis for a rational discussion.

And that’s the most disappointing thing to come out of this affair. The people making this accusations are fans of Christopher Hitchens. You would hope they’d be from the more rational end of the spectrum. You’d hope that they would be above making accusations like this without evidence. I guess no-one is immune from irrationality.

But I’m going to go out on a limb here. And lay my cards on the table. And other clichés that Hitchens would despise.

Twitter (probably) didn’t censor the #GodIsNotGreat hashtag.

Update: The author of the tweet I quoted above seems to agree with me.