Open letter to a disruptive Twitter user

“You read my tweet saying that I would be going to a play, and decided to impose your view before I had even stepped anywhere near the theatre. Your actions were designed to shut down the possibility of coming to a conclusion that was in any way different to yours. You decided to exploit your experience of having seen it to try and suppress a stranger who had not yet had that opportunity.”

To the person who decided that he would respond to my Twitter feed today:

Yes, I tweeted on Monday that I had booked tickets to see the new play, Teddy Ferrara, at the Donmar Warehouse. I did so partly because the Donmar’s so small that it can feel that securing a ticket can be an achievement in itself. It was also prompted by the cast including an actress whose work I admire, and whose friendship I feel privileged to enjoy.

So I decided to share with my friends and others who follow me that, at some point in the future, I would be seeing the play.

And yes, I know that the play has LGBT themes. And that perceptions of the play have been decidedly mixed. And that the reasons for the criticisms have varied, from story events to characterisation to dialogue.

I also know that some audience members agree with those reviews. Just as I know that others, including friends of mine who have seen it, disagreed with them.

All of which I am sure I will discuss with those same friends – once I, too, have seen it. After all, talking about the merits of a play before you have experienced anything about it is not the greatest endeavour for anyone concerned.

So I am open to discussing the play.

But not yet.

Continue reading “Open letter to a disruptive Twitter user”

A quick update

I’ve kind of let this blog wither on the vine for the past eighteen months, but I’m still elsewhere on the web: I continue to review theatre for both Musical Theatre Review and The Reviews Hub (the new name for The Public Reviews).

But as those who know me are aware, those are my evening pursuits: these days, my full-time job is as a software developer for a company that monitors online discussions about scholarly and academic works.

I used to mix both code and criticism posts on this blog, but now I have a new location for the former – Scott Codes, a Github-hosted blog that currently has a paltry two entries, but will shortly get more.

The blog posts I’m planning for over there will touch on the duality of my working experience, looking at how the worlds of software development and journalism have enough similarities that one discipline can learn from the other. I’ll be kicking that investigation off with a 25-minute session at the next meeting of the London Ruby User Group (LRUG) entitled “Hack like a journalist”:

News reporters are trained in techniques to produce stories that are concise, well structured, easy to follow and with a consistent house style. How can those same techniques help us write better code?

If you’re a Ruby developer, I look forward to seeing you there.

Desperate marketing: Robin Williams Edition

Private Eye magazine has a relatively new, sadly regular column called Desperate Marketing, where corporate marketing communications desperately try and shoehorn themselves into contemporary news stories in a way to attract attention to their product.

I was reminded of this when receiving an email from an otherwise reputable publisher of technology and computing books:

Robin Williams was a great actor and comic, with a singular talent that could make other comics laugh out loud. He would even crack jokes about joking itself. Comedians and actors have long explored the possibilities of meta-dialog, a play-within-a-play, and other higher-level dramatic devices. It’s a world-changing idea.

Metaprogramming can change your programming world, and open up possibilities you may never have known existed. Embrace the new-found freedom and power that metaprogramming can bring to your career.

Author [REDACTED] will show you all the magic, with examples, challenges, and over 30 “spells” that you can use right away. Now in print and shipping from [URL REDACTED]

Usually these sort of things are done in the heat of the moment, aren’t meant to be offensive, and may be meant genuinely (“We’ve been thinking about this topic for a while as this book was being prepared, and this tragic event seems to tie in, so we’ll tell you about it!”)

I suspect the person who wrote those paragraphs is now beating themselves up at the ineptitude. But in case she or he isn’t, if there’s the remotest chance they did so in the hope that it would get their communication talked about more than your average weekly email shot, I’ll refrain from mentioning or linking to the actual publisher.

And I’ll put off buying their book on metaprogramming… for now.

iOS 7 first impressions: Anything but flat

It can’t have escaped many geeks’ notice that on Monday, Apple previewed the forthcoming new versions of their desktop interface, OSX 10.9, and their operating system for handhelds, iOS 7.

Everybody can view the presentations from Monday’s World Wide Developer Conference keynote, and the marketing information that has been released. As a registered app developer who will have to make sure their app is iOS 7-ready in time for the public launch in the autumn, though, I can get legal access to the first beta.

And while (as early betas can be) it is slow and crashes more often than it should – the changes in iOS 7 are only apparent when using it on an actual device. Watching a slick video doesn’t give you the full impression.

NB: There are swathes of non-disclosure agreements surrounding early access to iOS 7. This article is based purely on hands-on access to the features publicly disclosed by Apple, and experience of previous iOS upgrades.

Continue reading “iOS 7 first impressions: Anything but flat”

“Spam, spam, spam, bots and spam”

After getting a ton of uncaught spam on our work’s WordPress site overnight, I did a quick Twitter search to see if the anti-spam filtering by Akismet had been down generally.

Instead, I found that Twitter spambots are now trying to sound more genuine by posting comments about anti-spam measures. Trouble is, they’re all posting the same comment…

How to add XML elements to your WordPress RSS feed

A while back, I shared a little way of customising the individual title of each item in your WordPress feed. That was based on filtering the existing title, and prepending the requisite content, which in that example was the post type (Gallery, Video, etc.).

I’m now using a variant of that same technique in The Stage’s new RSS feeds. News, Features, and Columns and their respective subcategories are all implemented using WordPress’s built-in categories system. The relevant category (News, Arts 2.0, Obituaries, etc.) precedes the relevant article’s headline. It’s not an ideal solution: if you grab a category feed, e.g., the RSS feed for Shenton’s View, every article will still contain the category name, even though it’s implicit from the context in which you’re requesting the feed.

Recently I’ve had an additional need, though: to add additional XML elements to an RSS feed in a way that gives additional flexibility to custom clients, but doesn’t break any feed readers.

Continue reading “How to add XML elements to your WordPress RSS feed”

Touch me: cleaning up Rails association code

Yeah, this is one of those posts where I stop wittering on about what I’ve seen at the theatre or in the cinema, and talk about computer code I’ve been writing. Odd mix for a blog, I know: welcome to my world…

In a Rails project I’m currently working on, I have a parent object that has a :has_many collection of children. In this case, they’re all time based, so let’s call the parent class Calendar and the child association Event:

Class Calendar < ActiveRecord::Base
  has_many :events

Class Event < ActiveRecord::Base
  belongs_to :calendar

(As you may have guessed, these aren’t the real class names. Confidentiality, and all that.)

Many operations on our Calendar object rely on the overall date range between the first and last dates in the list of events. Now we can, if we want to, calculate those on the fly using associations:

Class Calendar < ActiveRecord::Base
  has_many :events

  def first_date
    events.order('starts_on ASC').first.starts_on

…and so on. Again, we have quite a few of these methods, and they’re actually a bit more complicated than this.

Continue reading “Touch me: cleaning up Rails association code”

Steve Jobs: “Death is Life’s best invention”

Steve Jobs, founder of Apple and Pixar, in his Stanford University commencement address in June 2005:

No one wants to die. Even people who want to go to heaven don’t want to die to get there. And yet death is the destination we all share. No one has ever escaped it. And that is as it should be, because Death is very likely the single best invention of Life. It is Life’s change agent. It clears out the old to make way for the new. Right now the new is you, but someday not too long from now, you will gradually become the old and be cleared away. Sorry to be so dramatic, but it is quite true.

Your time is limited, so don’t waste it living someone else’s life. Don’t be trapped by dogma — which is living with the results of other people’s thinking. Don’t let the noise of others’ opinions drown out your own inner voice. And most important, have the courage to follow your heart and intuition. They somehow already know what you truly want to become. Everything else is secondary.

Do web pages in Google Chrome look odd to you?

Do web pages in Google Chrome look odd to you? That’s because the latest build for Mac OSX has turned off subpixel rendering, apparently.

At the “macro” level, fonts as rendered by Chrome look thinner. Subjectively, they are not as legible. They also look slightly washed out.

At the “micro” level, if you magnify the Chrome and Safari snippets a few times, you will see that Safari uses subpixel rendering: loosely speaking, this means that the “edges” of character shapes (glyphs) are actually drawn in different colors, not just different tones of grays. On the other hand, Chrome seems to have inexplicably switched to purely grayscale rendering of fonts.

WordPress Wednesday: PostRank

Editor’s Rating

[Note: I’m doing a lot of work with WordPress at work at the moment, so am accumulating plugins, coding tips, tutorials, etc., like nobody’s business. Something I started (and then quickly stoppped) doing a while ago was a ‘WordPress Wednesday’, writing at least one post a week that talked about an element of WordPress and its associated plugins. I’m going to try and keep it going for a little while longer this time…]

There are a bevy of “popular posts”-type plugins for WordPress around. They will look at various metrics – page views, number of comments, etc., – and use an algorithm to work out which posts to include in a widget or other form of display. Some use information collected within WordPress, others connect to third party statistical information, such as Google Analytics, and others do some combination of the two.

One I’m trying out is PostRank, which was developed by a company that has now been bought by Google. In the words of the plugin authors:

PostRank measures the audience engagement with each story by analyzing the types and frequency of online social media interactions – comments, tweets, diggs, etc. The more interesting or relevant the story is, the more active your readers will be in organizing, responding to, and sharing it.

The collection of popular stories the widget generates (see the sidebar) looks pretty spot on to me. It avoids the mistake that others have made of counting hits from Google Images (a search for quite a common word results in many hits for one post that’s several years old now), instead concentrating on actual user engagement.

As well as the widget, the plugin adds an PostRank column to the list of posts in the WordPress admin area so I can see the engagement of my most recent posts at a glance.

All the information is useful, although the design out of the box is a little garish for me, especially when sitting on a template based on WordPress’s default Twenty Eleven theme. The widget has eight selectable colour schemes to choose from, plus a ninth ‘style-free’ option ready for you to apply your own CSS. If I keep the plugin around, I’ll move to that option, but it will take a little time to work out the relevant selectors.

For more information about PostRank, visit the website. And if you’re using the built-in plugin search facilities within your WordPress site’s admin section, be warned – there’s an unrelated plugin also called PostRank out there. Click on the ‘plugin details’ link before installing to make sure you’re looking at the correct one.

WordPress Wednesday: PostRank3Scott Matthewman2011-09-22 17:47:38[Note: I’m doing a lot of work with WordPress at work at the moment, so am accumulating plugins, coding tips, tutorials, etc., like nobody’s business….