10 tweet summary of NFP Tweetup 32 – Getting off to a good start

Here’s a 10 tweet summary of last night’s NFP Tweetup. I wasn’t actually able to attend the event, but that’s no barrier to summarising the best material from twitter 🙂

Innovation and failure – Luke Williams, RNLI

Set up organisation-spanning structures to keep an eye on trends:

Formal approval processes often take longer than tech implementation work:

How to decide whether to jump a trend:

  • Where is this trend in its lifecycle? Has it peaked? Which other organisations have taken part?
  • Can we relate it to our organisation?
  • What time/resources do we need to make it happen?
  • How do we make it authentic to the trend?
  • Does taking part present any risks?

RNLI are using chatfuel.com to build a Facebook bot.

Tips for getting buy-in for an idea:

Writing a digital brief – Jonty Sharples, Hactar

Headline structure for a digital brief:
https://twitter.com/MrNathanMurray/status/823966911654404096
Start with the user need and then think about the product. Not the other way round.

Digital Transformation approaches and language – Joe Freeman, Breast Cancer Now

Some resources on transformation recommended by Joe:

View story at Medium.com

View story at Medium.com

Eat Sleep Work Repeat podcast

Transformation but not as you know it…

Digital transformation is mostly about culture and ways of working, not technology

Tactical tip: fundraising events teams are usually very receptive to new ways of working to help them reach their goals:


(This has been my experience too.)

Two tools for measuring how well your organisation is doing digitally:

Digital Maturity Matrix

A spreadsheet to assign jobs to sprints

If you’re following an Agile project management process, and know your development capacity, I’ve made a spreadsheet that automatically assigns a prioritised backlog to sprints, and gives ETAs for each job. You’re welcome to download this semi-automatic-sprint-planning-spreadsheet. (ODS format)

The spreadsheet uses a macro to automatically allocate jobs to sprints.

You need to tell the spreadsheet:

  • How many hours each job requires. (This could be changed to story points if that’s how you work.)
  • Your prioritisation of work – i.e. you need to rank the jobs in descending priority.
  • When your sprints start and finish; and how many hours you have in each sprint. (There’s a separate tab for this)

This spreadsheet could make your life easier by:

  • Saving you time allocating jobs to sprints.
  • Saving you time in updating information when details change (e.g. you add new high priority jobs and want to see how this affects the eta of various pieces of work)

The spreadsheet allows you to answer questions like:

  • When will job X be completed?
  • Is it worth expediting estimation of this small job so that we can fit it in to the next sprint?
  • Why aren’t we working on job Y yet?

If you know the number of hours (or story points) required for a job, and you have an ordered prioritisation, just press the button and jobs will be assigned to sprints.

The basic logic is: For each sprint, start from the top priority job that hasn’t yet been assigned. If there’s room, put this job in this sprint, reduce the number of hours available in the sprint, and write down the estimated delivery date for that job. Then look at the second highest priority job and see if there’s room for it in the sprint. Keep going down until you run out of hours remaining in the sprint.

Then move on to the next sprint, and do the same thing again. Continue until you run out of sprints.

This tool can help when you have a large backlog of development work. The ideal is, of course, to not have a large backlog. A backlog of development work incurs inventory costs: Understandings of requirements fade, developers move to different tasks, internal stakeholders have to be kept updated, motivation and excitement around each job diminishes.

This spreadsheet is shared under the MIT License.

How to view the number of unique visitors to a page, or set of pages, in Google Analytics

You can see the number of unique visitors to your site as a whole in Google Analytics’ Audience report. But if you go to Behavior > Content Drilldown, to view a particular page of set of pages, you can only see “unique page views”.

Unique page views is a different measure to unique visitors. What a nuisance.

So the solution is to create an advanced segment in the Audience > Overview report, which includes the pages you want. (Inspiration taken from this comment by Rendy.S)

Let’s say I’m interested in the information section of the www.mind.org.uk website. All of this content lives inside the /information-support/ section.

So If I wanted to create a segment to look at unique visitors to this part of the site, I’d use a regular expression like this: /information-support.*
The . and the * at the end combine to mean “plus any number of any other characters”. i.e. this will match any URL that starts mind.org.uk/information-support

regular expression example for a site section segment in google analytics

So if you ever want to view the number of unique visitors to a particular page or pages in your website, create a custom segment and user regular expressions to target the page(s) you’re interested in.

Can I embed tweets in emails? No, because of JavaScript and iframes

A tweet is an individual message posted by someone inside the twitter social media platform. An embeddable tweet is a version of this message that can be copied and used outside twitter. Embedding tweets is a great feature, allowing conversations and ideas to be spread beyond twitter’s walls, and is great for curation and analysis.

But the way that twitter have constructed this feature means that you can’t embed tweets in emails.

Why is this? You can’t display embedded tweets in emails because embedded tweets require:

  1. JavaScript
  2. iframes

Both of these features are blocked by most email clients for very sensible security reasons.

So an embedded tweet that should look something like this:

… ends up looking like this instead:

#ed473 this is really thought-provoking. @anildash on gender privilege & social networks: The Year I Didn't RT Men. https://t.co/qZXGCdv545

— Bonnie Stewart (@bonstewart) February 13, 2014

This isn’t nearly as useful or pretty.

So what can I do instead if I want to embed a tweet in an email?

Lots of people simply share tweets by taking a screenshot of the message, and then pasting it to wherever is needed – eg into a powerpoint presentation.
This solution could work in the context of sending an email: take a screenshot of the tweet you’re interested in, trim to size, upload somewhere, and add in to your email. For extra credit, make the image a hyperlink to the original tweet.

This solution isn’t ideal – it’s manual, laborious, and cannot be easily automated. The information about the tweet will become outdated as more people share or retweet it, or reply to it. Worse, it’s not possible to actually interact with the tweet in this setting, nor is this option at all accessible (unless you are very diligent with your alt text).

Okay then, come up with something smarter

I haven’t created anything better, I’m afraid, but here’s one idea to investigate:

If our aim is to take the useful features of embedded tweets – aesthetics and functionality – and to get them into email, I think that Twitter’s “Do you know…” emails could help:

a screenshot of an automated email from twitter suggesting some accounts I might want to follow

You could take the inline HTML from these emails (I’ve copied the HTML code here) and use them to style up embedded tweets in an HTML email. You’d need to check in with twitter’s brand policies though, as this may not be within their terms of use.

3 quick points I learned from Google’s Digital Analytics Fundamentals course

Google’s Digital Analytics Fundamentals course started gently, introducing some good overall concepts about measuring objectives, but soon ramped up the difficulty so that experienced users would probably learn something too. Here are three things I’d like to share with my team:

  1. A “bounce” is a session with only one interaction. Bounce visits are assigned a time on page and a visit duration of zero.
  2. Goal conversions can only be counted once per visit. Ecommerce transactions can be counted multiple times per visit
  3. Visitor flow behavior report can show you events as well as page views.

Some user experience information streams I’ve subscribed to today

Today I’ve spent some time reviewing which RSS feeds I subscribe to. I’ve decided that I’m missing out on user experience material. So I’ve been hunting out some streams of UX inspiration and ideas.

I’ve added the following feeds to my RSS subscriptions, and will be reviewing their usefulness over the next couple of months:

  • Smashing Magazine UX design category
    Feed address: http://rss1.smashingmagazine.com/feed/?f=uxdesign-std
     
  • UX Magazine
    Feed address: feed://feeds.uxmag.com/uxm
    I’m slightly wary of this one – will the content just be stripped down teasers for paid material? Will the focus be too long-form and specific for my needs?
     
  • Gizmodo’s user experience tag
    Feed address: http://gizmodo.com/tag/user-experience/rss
    This one was a little harder to find the RSS feed for. I didn’t have to do any filtering like I’ve done with other RSS feeds, but I did need to manually work out the URL. I followed this guidance to generate the URL I needed – you just need to put /rss at the end of the tag’s URL.
     
  • UI Patterns
    Feed address: http://feeds.feedburner.com/UI-patterns-com
    UI design patterns are standard solutions to common design problems. This site discusses them and also collates examples.
     
  • Elements of design
    Feed address: http://feeds.feedburner.com/ElementsOfDesign
    A showcase of different design patterns. The RSS feed itself shows latest additions to the example gallery.
     

How to embed a flickr tag slideshow on your website

If you have a set of photos uploaded to flickr, all with a certain tag, here’s how to display them in a slideshow on your website:

The steps outlined in the video are:

  1. Head over to flickr.
  2. Go to your photostream, and click on one of your photos that you’ve tagged with the tag you want to display.
  3. Scroll down, then click on the tag you want to display in a slideshow – eg dailycreate.
    http://www.flickr.com/photos/martinlugton/tags/dailycreate/
    ie http://www.flickr.com/photos/YOUR_USER_NAME/tags/A_TAG/
  4. Manually add “show/” to the end of the URL (without the quotation marks).
    So in my case, the URL I want is: http://www.flickr.com/photos/martinlugton/tags/dailycreate/show/
  5. Go to this link, which will load up a slideshow.
  6. Click on ‘Share’ at the top right, then click on ‘Customise this HTML’.
  7. Specify the width and height options if you want to, then copy and paste your code onto your website.

How to add a twitter feed to your wordpress site

Summary: Get twitter to generate some HTML that you copy-paste to a widget on your WordPress site.

Here are the steps in more detail:

1) Head over to twitter and generate a personalised HTML code

Navigate to twitter, and log in. Then click on the cog at the top right of the screen, then settings, widgets, then ‘create widget’. (As a shortcut, here is the direct link to the twitter widget page)

2) Which widget type should I choose?

Each tweet feed looks very similar, and is embedded into your site in the same way, but they display different information:

  • User timeline – displays your tweets. You can choose whether or not to include replies.
  • Favorites – Displays all the tweets favourited by a chosen account. Doesn’t have to be your own account.
  • A list – Displays all the tweets by members of one of your twitter lists.
  • A search feed – displays tweets matching a search term. This is where you can display hashtags. Eg (remove the quotation marks) “#ds106” or “digital communications”. You can also do fancier searches using boolean terms – eg on my digital storytelling site I have a stream that searches for “martinlugton and #ds106” to highlight my ds106 tweets.

3) Click ‘create widget’, then copy the HTML code to your WordPress page and put it in a widget.

Go to the widgets area of your WordPress admin backend.Grab a widget of the type ‘text’ and drag it to the appropriate widget. (A widget is just an area of your page. Each theme has different widgets, so take a minute to work out where exactly you want to place yours.)The width automatically adjusts to the width of the area (div) you place it in.

4) The result should look something like this:

two examples of a twitter timeline widget

Filtering RSS feeds for a more useful inbound content stream

Noise is the price we pay for volume and diversity of content.
I’m hopeful that we can reap the rewards of the wealth of information around us, while minimising the price way pay having to filter through it to get to the good stuff.

I’m interested in the task of focusing on relevant, helpful material and reducing the mental overhead of filtering out irrelevant material. In this post I look at one way to bring a bit of order and clarity to your RSS feed subscriptions, so that they are more focused and useful.

To do this, we use Yahoo Pipes – an online tool that can manipulate information from around the web, and serve it to you in a range of formats.

You can make  your own pipes, and so create your own processes for gathering and manipulating information and content.

Each pipe takes an input – or a range of inputs – does stuff with it – in some sort of sequence – and then presents an output.

Data flows through pipes, gets processed appropriately at different points, and goes down to the output. You can then do stuff with this output – in our case we want to subscribe to it as an RSS feed.

Let’s look at a couple of examples of how we can use yahoo pipes to filter content:

Filtering the SEOmoz feed, so that I only see Whiteboard Fridays material

One very important area of digital change is SEO.

Watching SEOmoz’s weekly Whiteboard Friday video is a great way to keep up-to-date with best practice, and to see experts figure out the implications of any changes in the search landscape.

I’m not a dedicated SEO professional, though, so I don’t really have time to read all the posts on SEOmoz. But I do want to keep up with Whiteboard Fridays.The SEOmoz RSS feed doesn’t know this, of course, so it just serves me all the content produced on the site.

Ideally I’d be able to filter this RSS feed, so that I just get my weekly delivery of Whiteboard Friday and nothing else. This is super-easy to do with Pipes:

In the Pipe editor, click on the ‘Sources’ heading, then drag ‘Fetch Feed’ into the editing area.

This is where we specify the RSS feed we want to filter. In this case we paste in http://feeds.feedburner.com/seomoz

Now it’s time to add in a filter, and set it to only let through Whiteboard Fridays posts. Under the ‘Operators’ heading, grab the ‘Filter’ module.

Connect the output of ‘Fetch Feed’ to the this module. (Connect modules by dragging from the circle at the bottom of one (its output) to the circle at the top of another (its input). This creates a pipe. Make sure that the output from your final process is linked up to the output!)

Now it’s time to specify the filter we want. This looks a little intimidating at first, but if you click on the left-hand column Yahoo Pipes makes some suggestions. In this case we want to the filter to only allow through content whose title contains ‘whiteboard friday’.

yahoo pipes being used to filter whiteboard fridays

Have a look at this pipe and make a copy of your own – or remix it!

You can add multiple rules for each filter, which can give you lots of power. You could, for example, filter the NHS Choices Behind the Headlines feed so that you see material about ‘cancer’ or ‘dementia’ but nothing else.

You can filter by more than item.title. You can also filter by item.description, which seems to be the item’s content, or at least an excerpt.

Filtering the Telegraph Comment feed so that it just displays editorial content

I’m a leftie Guardian reader, but I want to make sure that I’m presented with a range of different views so that my ideas aren’t just informed by one way of thinking. It’s good practice to see different sides of an argument, to judge for oneself which is better, lest we fall into sloppy thinking. (I used to be an Economist subscriber, but keeping up with the volume of content it produced was punishing.)

I don’t want to read all the Comment pieces in the Telegraph, though. I’d rather just read the editorial. The naming convention on the Telegraph’s Comment feed seems to be that editorials are written by the author ‘Telegraph View’. So I set up a filter to only let through this content:

yahoo pipes filtering the telegraph comment feed to only display editorial content

 

Head over to yahoo pipes to see this pipe in action.

Don’t kill the noise

A word of caution: you need noise in your life. Noise is new, unknown, challenging, thought-expanding. Processing it takes effort, and can be uncomfortable, but it has rewards. So don’t filter it out entirely. (Indeed, the whole point of the Telegraph filter is to increase the ideological noise in my life)

But sometimes you know what you want from a given RSS feed, and you don’t want to see anything beyond that. Be in control of the noise – this is the time to filter. Save you brainpower for filtering through the noise in areas where you’d like to expand your knowledge and understanding beyond what you currently think you need to know.

Advice on learning computer programming

I dived in to learning programming in 2012. If you’re interested in doing the same I’d like to share some of my recommendations with you.

For the last year or two there’s been a lot of buzz around efforts to introduce more people to programming. We’ve seen the launch of online platforms like Coursera, Udacity and EdX, all leading their offerings with computer science courses. The Code Academy startup offers interactive coding lessons. We’ve seen changes to the UK’s secondary ICT / Computer Science curriculum to make things more about programming and less about subservient use of MS Office. Last year saw the launch of the $25 Raspberry Pi computer to encourage young people to tinker, play and experiment.

Of course, there are lots of great resources that pre-date the last couple of years. So if you want to learn to program in 2013, there are lots of places you can go. Everything I recommend below is free.

What do you want to learn?

If you’re interested in programming, you might have a specific end goal in mind. Or you might just want to get a feel for programming and computing as a whole. My desire, starting 2012, was “to be able to get computers to do useful stuff”. Over time, I’ve been able to develop a stronger understanding of what I’m interested in specifically.

My suggestion would be to learn some basic principles, gain an appreciation of the landscape and what you might want to do, and then move in that direction when you’re ready. To do that, I’d advise you to:

Start with Coursera’s cs101

This course gives a good overview of how computers work and gives a nice introduction to computer programs.

It has a great mix between listening to an expert (Stanford’s Nick Parlante) and diving in and doing interactive programming exercises yourself. The course is bite-size, and takes you on a really useful journey through the conceptual terrain. The difficulty curve is quite gentle.

The course is divided into ‘weeks’. Each of these takes about 3-5 hours in total. I found this quite easy to fit in with my schedule. The course is currently open for self-study, so you can take it at your own pace.

I had a little go at Code Academy, but it didn’t hold my interest as strongly as this course did. This course felt more holistic and profound, whilst retaining a good degree of hands-on work.

This course might sate your appetite in itself; but if you’re hungry for more afterwards, these more difficult courses will take your understanding to the next level. So your next step might be to:

Follow-up with EdX’s Cs50x

This is Harvard’s introductory computer science course.

The format is pretty much: “We videod all our lectures, and have made the specifications for problem sets available online. There’s an online discussion forum to discuss problem sets and other ideas about and beyond the course.” So the organisation of the course is a bit old-school: you’ll watch a couple of hours of video lectures each ‘week’, and then do a lengthy problem set for homework, which will take around 15-20 hours.

The difficulty curve is pretty tough, and if you went into this with no prior experience you’d have a hard time.

The course dives deeper into programming specifically, using the C language, and does a really good job of starting you off as a programmer. The course gets you thinking in algorithms and introduces the comcept of computational efficiency. “Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development.”

The course has you use the CS50 appliance – a virtual machine running on your computer, using the fedora linux distro. It’s also very good for simply increasing your confidence and literacy in using software and operating systems.

I’m over half way through this course and having a great time so far. I’ve got three problems sets, my final project, and final exam to do before April 15.

The current run-through of the course finishes on April 15. I imagine that course material will still be available after this data. If this isn’t the case, you could download all the materials in advance of this date.

Or follow-up with Udacity’s CS101

Udacity’s CS101 takes a more bite-size approach. This course is designed for online consumption. It’s all delivered in-browser, with short videos intersected with interactive questions or small programming assignments. Each topic is rounded off with a series of homework questions.

The course has no time limit, so can be taken entirely at your own pace.

This course is much more approachable than EdX’s CS50, and feels a little more abstracted, as it’s using the Python language rather than C, but you still very much get your hands dirty with coding. Over the 7 units, you create a working search engine, which is very cool. You might not feel much ownership over it, however, as you have to do as you’re told.

To make sure that you use your powers for good rather than evil, take a Human Computer Interaction Course

An HCI course will get you thinking about how to design products that are easy to use and make the world better. Coursera’s excellent HCI course is just the ticket. You can watch the videos and take the interactive quizzes, or do a version of the course that requires you to do a design project. This is a serious undertaking – I spent about 25 hours a week on this course – but is a great way to learn.

Tips for making your learning effective

  • Make sure you plan enough time to fit in the learning
    Think about your learning will fit in your schedule, and make honest commitments. Let friends and family know what you’re up to.
    If you’re a commuter, I’ve found watching lectures on the train to and from work to be a great way to frame the working day.
  •  

  • Pace yourself
    There’s so much out there to learn and do, so many people to connect with, and so many experiences to have that it’s easy to overstretch and try and do too much and feel disheartened when you can’t do it all. Focus in on the things you enjoy best.
  •  

  • Follow what interests and excites you
    There are lots of ways to learn, and lots of different topics to learn. The internet is awash with free courses and resources. Your investment and risk in sampling each is minimal, so don’t be afraid to try and few and stick with the ones you like best.
  •  

  • Learning with others can help
    It can be quite lonely doing these courses, particularly if you get stuck. 
    Online forums can be very helpful for answering specific questions. There are some excellent people in there who will generously help you with your questions. But for all of these programming courses, I’ve found the forums too noisy to spend much time in. (Maybe I haven’t invested enough time in them?)I’ve found that forging closer connections with other learners is a powerful and motivating, way to learn. I’ve managed this in some of my online learning (eg MOOCMOOC), but not in any of these computer science courses. I’ve relied on personal friends to chat over the course in a more informal way, and to trade war stories about a challenging bit of code.
  •  

  • A mentor might be very helpful
    I’ve done all of these courses pretty much on my own. When things get tough, and when you’re not feeling confident, it can be hard to keep going. In the wilds of the internet, it’s very easy to be just an another anonymous consumer, and just as easy to drop off the radar. No one else is responsible for your learning, or for encouraging you along. The majority of people who sign up for a ‘massive open online courses’ drop out.It might help to find someone knowledgeable to support you in your learning. Just knowing that you can call on them to ask questions, or to help point you in the right direction might help.
  •  

  • Build something
    Your new skills will help you create things you wouldn’t have been able to before, and expand your mental and creative horizons. Don’t be scared to take your skills for a spin and to make something awesome!
  •  

Does anyone else have any advice to share about learning to programme? Are any of you planning to do so this year? If so, what are you going to start with, and what do you hope to learn?