OUseful.Info, the blog…

Trying to find useful things to do with emerging technologies in open education

Archive for November 2011

On (“)Strike(“)…

with 3 comments

Today, I am on strike, whatever that means for someone who works largely from home and often in a self-directed way. I don’t make widgets, so my employer won’t be down on their widget production schedule because of my actions; and I’m not currently involved in course production, so I don’t have a wordcount production schedule to stick to…

From my not-a-student-of-political-action perspective, union organised strikes seem to have something to do with the collective bargaining role of a union in which the workforce it represents act together as a way of demonstrating their majority decision to voice certain grievances relating to the terms and conditions of employment to the attention of their employer. Strikes also have a history as a form of political action geared towards raising a particular concern to the attention of the government, but I’m not sure how the law on that sort of strike works in the UK at the moment? (Would that be covered in the Trade Union and Labour Relations (Consolidation) Act 1992? I suspect not? Is there other legislation around relating to strike action? Some revisions to the law in the form of a Private Member’s Bill appear to have stalled on their way through Parliament during the current session: Lawful Industrial Action (Minor Errors) Bill 2010-11.)

As I understand it, the current strike action represents the co-ordinated activities of several unions voicing concerns on a similar issue – changes to pension contributions and benefits (often referred to as “deferred pay” by the union lobbiests). I haven’t been following the arguments as much as I probably should, but I get the feeling that there are three major concerns: that public sector contributions will go up, that benefits will go down, and that a chunk of monies raised by changing the current pension regime will be used to contribute to deficit reduction.

As far as contributions going up: someone has to pay somewhere. I’d start by simplifying matters at the personal level by changing the way payslips are designed to include a gross benefit line that represents the gross salary plus employer’s pension contribution so at least folk get a monthly reminder about their “deferred salary” contribution to their pension fund. It would probably be a dangerous step on the way to personal/private pensions, but having a line detailing accumulated employee+employer pension contributions on the payslip might also put steps we need to take towards personal financial planning into some sort of perspective. Referencing this sum against a notional fund value reported annually by the pension fund itself would help you see what sort of health the pension fund itself is in. Insofar as generous public pensions acting as poison pill to spike privatisation activity goes, and eroding those benefits making potential privatisation easier to achieve, I don’t know…

As far as pension contributions going up meaning income will go down, I thought I’d look at my own finances. My net salary for October and November this year are at their lowest level since September 2008 (I earned £67.20 (net), £150.65 (gross adjusted), £205.91 (gross), more in my November 2011 salary than I did in September 2008). Since then, my gross annual salary has gone up by £2471. Breaking this down, over the same period my pension contribution has gone up by £55.26 a month, PAYE up by £56.20 per month and National Insurance up £27.25. I’ve also noticed by weekly fuel bill continually on the up, as are boat tickets on the ferry… and train ticket prices. I assume the profile of many other public sectors will be the same, so I can sympathise with those for who similar proportional losses in the coming months could well adversely affect their disposable income. I somehow doubt that their Sky subscriptions will be the first thing to go though…

I’m generally not very good at claiming expenses, but see quite a lot of the expenses I incur as part and parcel of the cost of going to work. I often forego subsistence expense claims (dinner) because I have to eat, and where I eat is my choice. More than a couple of times I’ve had dinner with colleagues at conference, with postgrad students joining us, and I’ve felt the postgrads (who often can’t claim subsistence) are being mocked by better paid academics who choose the restaurant and then claim the expenses. Maybe I should start claiming dinner expenses and using them to pay for dinner for folk who feel obliged to join a dinner group but dread the bill?

As far as ultimate benefits go, I don’t think I got an increment this year (I think I’m at the top of my pay scale) and I have failed in both a personal promotion application (2010) and a Head of Department’s promotion submission (2011) to Senior Lecturer, so I’m now stuck except for percentage pay increases and “outstanding service payments”, or whatever they’re called. My final salary and average salary thus look as if they’re tending towards each other. From a little digging around, I noticed that compared to my 80ths contributions/payback, other public sector workers get 60ths, 45ths or even 40ths. I stopped at that point lest I got bitter and started ranting about unaffordable public sector pensions…;-)

As far as pension monies being used for deficit relief: wtf? Private sector pensions were screwed when companies were allowed to raid funds that were (temporarily) “in surplus”, so my gut reaction towards pension monies being taken out of the system is both deferring and increasing the risk of harder times for the pension funds in the future. I suspect that striking as a way of speaking out on that basis is not “legal”, but I think that’s why I’m striking today… maybe.. I’m not really sure. (My union, UCU, didn’t really make a very good case, and I don’t think my employer, the Open University, entered into any communications saying why I shouldn’t strike?)

As to what form my strike action is taking, what form does strike action generally take? Disruption to the business of the employer? A public voicing of concerns about the way the actions of the employer are adversely affecting the terms and conditions of my employment?

As far as the first consideration goes, should I picket the @openuniversity Twitter account, and harangue everyone who sends a message to it, or who it sends a message to? Should I go and heckle on the OU’s Facebook or Google+ page? I don’t think so…

On the second point, I guess the letter of the law is that I can only voice concern about the issue the strike action is about, namely, pensions. I’m not sure what my own take on this is (hence the pensions related chunk of this post above as I try to put my thoughts in order), but that’s not to say I don’t have concerns about the way the OU is currently doing business for my future employment.

So, in the spirit of folk who say that taking strike action makes them feel uncomfortable (and it’s making me feel uncomfortable because I’m not sure what the actual basis is or what the action is supposed to achieve), I’m going to speak out against what I think is a dangerous strategy in terms of the OU’s business, specifically, the apparent focus on selling degree programmes rather than courses/modules. Note that I’m doing this not particularly because I want to (in public), but because I feel I have to…

When the OU was founded, it offered a radical alternative: open access, part-time, Higher Education at a distance, at scale, with a significant public service education side-effect. The market is different now, and I don’t think we should necessarily be trying to compete solely in a market into which other institutions are moving. It may be that the OU and the legacy structures that underpin the current incarnation of the organisation can’t innovate in the same way it once did (the “Innovator’s Dilemma”); the structure of Higher Education as a whole is also constraining, but that has shifted over time, for example with the introduction of the red bricks, the OU, the conversion of the polytechnics to the new universities, and the drive towards 50% of people in Higher Education. Maybe the OU is still the only place that offers an “open as to..” pathway into Higher Education for people who would not otherwise be able to access higher education? In which case, it’s maybe right and proper that we do go down the qualification-and-access-to-loans route that gives OUr students the same opportunities as students whose access to HE isn’t barred for any particular reason. Maybe the zeal to be seen as “an alternative” to traditional universities particularly for school leavers is a Good Thing? Or maybe it represents a loss of focus?

What I think we are in danger of losing is the desire to disrupt the (emerging) status quo (?!) and strive for ways of opening up persistent and ongoing educational opportunities for anyone who wants to avail themselves of them. And if that means trying to shake up the qualification-based career progression structures that provide much of the rationale in Realpolitik terms for getting a degree, so be it.

The move to degree programmes is a move towards bigger programmes of study. I’m a firm believer in lifelong learning, particularly in the form of continued ‘upskilling’, at an appropriate degree of granularity. It could be argued that the granularity provided by many workplace training courses is also incorrectly pitched (e.g. Jane Hart’s The Non-Training Approach to Workplace Learning). Folk may argue that taking a traditional degree is a prerequisite for becoming an effective lifelong learner because it develops independent learning skills as well as deep conceptual understanding about something – anything – that can help shape understanding of other topics later in life. I’m not sure. I don’t think that school does much to develop independent learning skills, and I’m not convinced a lot of Higher Education does either. I don’t have a lot of experience with FE to date, so can’t comment there.

I’ve posted before on the idea of students entering into a lifelong learning partnership with an ongoing (higher) education provider (Graduate With Who (Whom?!;-), Exactly…?, Subscription Models for Lifelong Students, or Education, Training and Lifelong Learning, Subscriptions Not Courses? Idling Around Lifelong Learning), and guess I should really try to put together a properly coherent, and argued from the point of view of data, think piece around this; but I’ve also started thinking that that approach doesn’t have much to say about making use of network structures as a way of accessing and delivering useful stuff you can learn with (that’s learn with, not learn from…).

Another approach I think might interesting to explore would be learning opportunities related to national conversations. This might be structured around national consultations, or the progression of Bills through Parliament. These can be used to provide part of the scheduling/pacing/cohort marshalling component that underpins the structure of course styled approaches, whilst also bringing people up to speed on (and maybe even attracting contributions from them) matters that influence their personal or professional life. So for example, in my own area, the forthcoming Communications Bill (Would this be a version of policy wonk heaven?! Or hell??!!)

Using something that isn’t a course to structure a course like delivery is the innovation here. The separate sections of a consultation document, or parts of a Bill, act as hooks to contextualise the study of particular topics using pre-existing “open educational resources” (whatever they are?) or prompting the production of ‘academic’ critiques or commentaries around Parliamentary briefing papers for example.

The OU already participates in framing national discussions at the pop cultural level via broadcast co-productions with the BBC, although these are only infrequently wrapped by actual courses (for example, The Blue Ocean was complemented by Life in the Oceans (S180)). I wonder if there is scope for looking for other linear, structural elements, such as the consultation/bill progress structures identified above? What other structures might there be? Other courses of study, such as vendor qualifications (the OU increasingly wraps these with academic credit bearing wrappers, such as Cisco networking (CCNA) (T216)) or as preparation for prfoessional certification (eg Linux: an introduction (T155) is a stepping stone towards CompTIA certificiation)? The current NASA mission to Mars maybe?! (The OU has history there too, such as the no longer presented course Exploring Mars (S198); though what this course provided was an opportunity for ‘leisure learners’, of course, and such opportunities are not typically a prime focus for degree programmes; and as university, academics are often loathe to admit to delivering training, which rules out a whole host of other timely interventions we might be able to make).

I realise that my role in the OU has ended up with my being involved in activities that are usually termed “other” and that my contributions (if any) are not easily measured by current metrics. My self-directedness is strongly influenced by my own notions of “is it OUseful?” – that is, does it contribute in some way to what I perceive to be the OU’s mission. As somebody paid from the public purse, I can appeal to my own feelings about how I spend/consume taxpayers’ money as part of my job. Most of the time, I feel I can justify it, though I find it hard to explain why (it “feels” right).

(That said, with the move to raising more funding through individual contributions that are based around a contract where the individual feels they are purchasing something, things are also starting to feel somehow different to me. The provision of privately contracted rather than publicly delivered services makes me feel that the charter and the mission will be interpreted with a different tone, and not necessarily a better one. It also makes me feel that it is harder to justify using my job in a way that I perceive to be a public good.)

By contrast, striking today doesn’t feel right. It kept me awake for hours last night. Other options I considered were: just carrying on “as normal”; taking a day’s holiday; taking a day’s holiday and donating my day’s salary to a union strike fund.

But as it is, today I am on strike; whatever that means…

Written by Tony Hirst

November 30, 2011 at 2:03 pm

Posted in Anything you want

Tagged with

When a Comment Spammer’s Script Goes Wrong…

with 4 comments

…you get to see all their one liners…

When a comment spammer's script goes wrong/via @AlexBilbie
[Wordle art by @alexbilbie]

Thank you for your post.Really looking forward to read more. Cool.
Really appreciate you sharing this blog post.Really thank you! Really Cool.
Thank you ever so for you blog article.Thanks Again. Really Great.
Really appreciate you sharing this post.Really thank you! Want more.
Awesome blog.Much thanks again. Want more.
I appreciate you sharing this blog article.Really thank you! Really Great.
Really enjoyed this article post.Really looking forward to read more. Will read on…
Thank you for your blog post.Much thanks again. Really Cool.
Major thanks for the post. Want more.
Enjoyed every bit of your blog post.Really looking forward to read more. Fantastic.
A round of applause for your post.Much thanks again. Will read on…
Thank you ever so for you blog article.Thanks Again. Cool.
Fantastic article. Cool.
Looking forward to reading more. Great article.Really thank you!
Thank you ever so for you post.Really looking forward to read more.
I value the article.Really thank you! Much obliged.
Really enjoyed this article post. Cool.
Thank you for your blog.Really thank you! Fantastic.
Thank you ever so for you post. Keep writing.
I cannot thank you enough for the blog.Really thank you! Fantastic.
I appreciate you sharing this blog post.Really looking forward to read more. Great.
Very neat article post.Really looking forward to read more. Will read on…
Thanks so much for the blog post.Really thank you! Much obliged.
Major thanks for the article. Will read on…
Really appreciate you sharing this article post.Much thanks again. Much obliged.
I am so grateful for your blog. Great.
“Great, thanks for sharing this article. Keep writing.”
Thanks for the post.Really thank you! Much obliged.
I value the post.Really thank you! Keep writing.
Really informative article post.Really thank you! Really Great.
I loved your blog post.Really thank you! Will read on…
Really informative article post.Really looking forward to read more. Really Great.
Really appreciate you sharing this blog post.Thanks Again. Fantastic.
Awesome blog article.Much thanks again. Much obliged.
Thank you for your article.Thanks Again. Great.
“Appreciate you sharing, great blog article.Thanks Again. Cool.”
“Great, thanks for sharing this article post.Really thank you! Really Cool.”
Im grateful for the blog post. Want more.
Looking forward to reading more. Great blog.Really looking forward to read more.
I loved your post. Much obliged.
This is one awesome blog article.Really thank you! Will read on…
Awesome article.Really thank you! Awesome.
“Say, you got a nice blog post.Really thank you! Really Great.”
Major thankies for the blog.Much thanks again. Great.
Really enjoyed this post.Thanks Again. Great.
Very neat article. Awesome.
“Great, thanks for sharing this article post.Really thank you! Keep writing.”
I loved your blog post.Thanks Again. Great.
Looking forward to reading more. Great post.Much thanks again. Cool.
Great blog.Really looking forward to read more. Cool.
Really enjoyed this article post.Much thanks again. Great.
I am so grateful for your article.Much thanks again. Fantastic.
Fantastic blog.Really thank you! Cool.
Fantastic post.Much thanks again. Cool.
I truly appreciate this blog.Thanks Again. Keep writing.
“Wow, great article. Fantastic.”
This is one awesome blog article.Much thanks again.
I loved your blog.Really thank you!
Thanks-a-mundo for the article. Awesome.
This is one awesome blog.Really looking forward to read more. Really Great.
Thanks again for the article post.Thanks Again. Awesome.
Thanks again for the article post.Thanks Again. Really Great.
Enjoyed every bit of your article post.Really looking forward to read more. Really Cool.
Major thanks for the blog article.Really thank you! Much obliged.
Enjoyed every bit of your blog article. Much obliged.
I really enjoy the blog.Really looking forward to read more. Keep writing.
“Thanks for sharing, this is a fantastic article.Really looking forward to read more. Really Great.”
Awesome article.Really looking forward to read more. Keep writing.
Im obliged for the blog post.Really thank you! Awesome.
Great article. Cool.
Very informative blog post.Really thank you! Really Great.
Thanks so much for the blog.Thanks Again. Much obliged.
I truly appreciate this blog article.Really looking forward to read more. Much obliged.
I cannot thank you enough for the blog article.Really looking forward to read more. Great.
Major thanks for the blog.Much thanks again. Cool.
“wow, awesome blog.Thanks Again. Much obliged.”
This is one awesome blog.Really thank you!
Thank you for your article.Much thanks again. Want more.
“Appreciate you sharing, great article post. Great.”
Muchos Gracias for your blog.Really thank you! Will read on…
Great post.Much thanks again. Really Great.
I value the blog article.Really looking forward to read more. Really Great.
Really appreciate you sharing this article.Really looking forward to read more. Really Great.
“Wow, great blog article.Really thank you! Awesome.”
Thanks so much for the article post.Much thanks again. Really Cool.
“wow, awesome blog post.Really thank you! Fantastic.”
Really informative post. Great.
Thanks for the blog article.Really looking forward to read more. Cool.
This is one awesome article post.Thanks Again. Really Great.
Very good article.Really looking forward to read more. Awesome.
Great article post.Thanks Again. Really Great.
“Hey, thanks for the blog post. Will read on…”
I cannot thank you enough for the post.Really thank you! Will read on…
Very informative article.Really looking forward to read more. Really Cool.
This is one awesome blog.Really thank you! Cool.
“Say, you got a nice blog post.Thanks Again. Really Cool.”
Awesome article post. Much obliged.
Awesome article post.Much thanks again. Much obliged.
I appreciate you sharing this blog. Fantastic.
Really enjoyed this article post.Really thank you! Will read on…
Major thanks for the blog article.Really thank you! Will read on…
A round of applause for your blog.Really thank you! Fantastic.
I think this is a real great blog. Really Great.
I really enjoy the blog.Really thank you! Really Cool.
Really informative post.Much thanks again. Fantastic.
Thank you for your article. Really Cool.
Thanks so much for the article.Thanks Again. Want more.
“Great, thanks for sharing this blog article.Thanks Again. Cool.”
Fantastic blog post.Really thank you! Cool.
Really appreciate you sharing this post.Really looking forward to read more. Awesome.
Im obliged for the article.Really thank you! Great.
Thanks for the blog article.Much thanks again. Cool.
“wow, awesome article post.Really thank you! Really Cool.”
I really enjoy the article. Awesome.
Looking forward to reading more. Great article post.Thanks Again. Great.
I truly appreciate this article. Much obliged.
“Wow, great blog.Thanks Again. Great.”
Enjoyed every bit of your blog post.Thanks Again. Really Cool.
Really appreciate you sharing this post.Thanks Again. Fantastic.
Great blog.Really looking forward to read more. Awesome.
“wow, awesome blog.Thanks Again. Really Great.”
A round of applause for your blog article.Really thank you! Want more.
Awesome post.Really looking forward to read more. Want more.
I really like and appreciate your blog post.Much thanks again. Want more.
“wow, awesome blog article.Really thank you! Awesome.”
Very informative blog.Much thanks again.
Im thankful for the article.Really thank you! Will read on…
Thank you ever so for you article.Really looking forward to read more. Really Great.
Thank you ever so for you article post.Really thank you! Keep writing.
Thanks-a-mundo for the blog.Really thank you! Cool.
Enjoyed every bit of your blog post.Much thanks again. Awesome.
Im thankful for the article post. Awesome.
Really enjoyed this blog article.Much thanks again. Much obliged.
Awesome post.Really looking forward to read more. Keep writing.
I really enjoy the post.Much thanks again. Fantastic.
Thank you for your blog article.Really thank you! Really Great.
I value the article.Thanks Again. Fantastic.
Thanks-a-mundo for the article post. Great.
Major thankies for the post.Really looking forward to read more. Awesome.
Thanks again for the blog.Really looking forward to read more. Really Great.
Thanks-a-mundo for the blog post.Thanks Again. Keep writing.
Really appreciate you sharing this blog post.Really looking forward to read more. Great.
I value the blog article.Really thank you! Much obliged.
Great article post. Keep writing.
A round of applause for your post.Thanks Again. Really Cool.
Very informative article post. Will read on…
Really enjoyed this blog article.Really looking forward to read more. Will read on…
Very informative blog.Thanks Again. Really Cool.
Im grateful for the blog post.Really looking forward to read more. Really Cool.
I truly appreciate this article post.Really thank you! Great.
Im grateful for the article post. Keep writing.
I really enjoy the blog article.Much thanks again. Really Cool.
Muchos Gracias for your blog post.Really looking forward to read more. Fantastic.
Im obliged for the article.Really looking forward to read more. Fantastic.
Really appreciate you sharing this post.Really thank you! Keep writing.
“Great, thanks for sharing this article post.Really thank you! Really Great.”
Awesome post.Much thanks again.
Looking forward to reading more. Great blog post.Really looking forward to read more. Great.
Thanks for the article post.Thanks Again. Cool.
Very neat article.Really looking forward to read more. Fantastic.
Muchos Gracias for your post.Much thanks again.
Major thankies for the post.Really thank you! Really Great.
Thanks again for the article post.Really thank you! Keep writing.
Im obliged for the blog article.Really looking forward to read more.
Looking forward to reading more. Great blog post. Really Great.
This is one awesome blog post.Really thank you!
Very good article post. Want more.
Major thankies for the blog post.Really thank you! Want more.
Fantastic article post.Thanks Again. Fantastic.
I loved your blog.Really thank you! Will read on…
I really enjoy the article.Thanks Again. Fantastic.
Enjoyed every bit of your article post. Keep writing.
Really enjoyed this article.Really looking forward to read more. Awesome.
Really appreciate you sharing this blog post.Much thanks again. Fantastic.
“Appreciate you sharing, great article post.Really thank you! Great.”
“Hey, thanks for the article.Really thank you! Much obliged.”
Fantastic blog.Much thanks again.
“Wow, great blog article.Much thanks again. Much obliged.”
Very informative post.Really looking forward to read more. Awesome.
I really like and appreciate your blog post. Much obliged.
This is one awesome post.Thanks Again.
I appreciate you sharing this blog.Really thank you! Awesome.
Very informative article post.Really looking forward to read more. Keep writing.
I truly appreciate this blog article. Really Cool.
A round of applause for your blog.Thanks Again. Keep writing.
A round of applause for your article.Much thanks again. Cool.
Im thankful for the article post.Really looking forward to read more. Much obliged.
Thanks-a-mundo for the blog.Really thank you! Great.
A big thank you for your article post.Really looking forward to read more. Much obliged.
Im grateful for the blog article.Thanks Again. Want more.
Thanks for the blog article.Really looking forward to read more. Really Great.
A round of applause for your blog article.Thanks Again. Much obliged.
I really enjoy the blog article.Really looking forward to read more. Keep writing.
Great post.Thanks Again. Much obliged.
Im obliged for the blog article.Much thanks again. Much obliged.
A big thank you for your post.Much thanks again. Great.
“Hey, thanks for the blog.Thanks Again. Really Cool.”
Looking forward to reading more. Great blog post.Really looking forward to read more. Much obliged.
Very neat blog.Thanks Again. Really Great.
“Thanks for sharing, this is a fantastic article.Really thank you! Awesome.”
Really enjoyed this blog post.Really thank you! Really Great.
Really informative article post.Really looking forward to read more. Fantastic.
Looking forward to reading more. Great blog post.Really thank you! Want more.
Im thankful for the blog post.Really looking forward to read more. Great.
A big thank you for your article post.Really thank you! Fantastic.
Awesome blog article.Really thank you! Awesome.
Thanks-a-mundo for the blog post.Thanks Again. Awesome.
I really like and appreciate your article.Much thanks again. Cool.
A big thank you for your blog. Want more.
Im grateful for the blog post.Really looking forward to read more. Keep writing.
I value the blog article.Really looking forward to read more. Great.
I appreciate you sharing this blog. Cool.
I truly appreciate this article post.Much thanks again.
I am so grateful for your blog post.Really looking forward to read more. Really Great.
Thank you ever so for you article. Want more.
I truly appreciate this article.Thanks Again. Really Great.
Looking forward to reading more. Great post.Really looking forward to read more. Keep writing.
I think this is a real great post.Really looking forward to read more. Really Cool.
Really appreciate you sharing this article post.Really looking forward to read more. Really Great.
I cannot thank you enough for the article.Really thank you!
Thanks for the article post. Much obliged.
Thanks so much for the article post. Really Cool.
Really enjoyed this post.Much thanks again. Awesome.
“Hey, thanks for the article post.Much thanks again. Awesome.”
I really enjoy the blog article.Really thank you! Cool.
“Hey, thanks for the post.Thanks Again. Want more.”
I think this is a real great blog post.Really looking forward to read more. Really Cool.
Thank you for your blog.Much thanks again. Really Cool.
I really liked your post.Thanks Again.
Thanks so much for the post.Thanks Again. Much obliged.
Thanks a lot for the post.Much thanks again. Want more.
Major thanks for the blog article.Really looking forward to read more. Really Cool.
I value the article.Thanks Again. Much obliged.
I really like and appreciate your blog article. Awesome.
Really appreciate you sharing this blog.Thanks Again. Fantastic.
“Thanks for sharing, this is a fantastic article. Really Cool.”
“wow, awesome article.Much thanks again. Awesome.”
I really enjoy the article.Really thank you! Keep writing.
Thanks for the blog post.Thanks Again. Awesome.
Major thankies for the article.Much thanks again. Keep writing.
Fantastic article.Really thank you! Awesome.
Really enjoyed this post.Thanks Again. Want more.
Very neat article.
Thanks for the article post.Really thank you! Great.
Major thankies for the post.Really looking forward to read more. Keep writing.
Fantastic blog article.Much thanks again. Awesome.
“Say, you got a nice post.Much thanks again. Really Cool.”
Enjoyed every bit of your article.Thanks Again. Really Great.
I value the blog post.Thanks Again. Awesome.
Im obliged for the article.Thanks Again. Fantastic.
Thanks so much for the blog article.Really thank you!
Thanks a lot for the blog article.Really looking forward to read more.
Thank you for your article post.Really thank you! Cool.
“Great, thanks for sharing this blog article. Great.”
“Wow, great article. Want more.”
Very good post.Really thank you! Will read on…
Really enjoyed this blog.Thanks Again. Much obliged.
“Thanks for sharing, this is a fantastic blog post.Much thanks again.”
I value the article. Much obliged.
Great post. Really Great.
“Appreciate you sharing, great blog. Keep writing.”
This is one awesome blog article. Much obliged.
Im obliged for the article.Much thanks again.
Very good blog article.Really looking forward to read more. Really Cool.
“Wow, great blog article. Really Cool.”
Thanks again for the post.Really thank you! Great.
Thanks-a-mundo for the article. Really Cool.
Thanks for the article post.Thanks Again. Really Great.
I really like and appreciate your post.Thanks Again. Much obliged.
I truly appreciate this article.Much thanks again. Fantastic.
Great blog.Really looking forward to read more. Really Cool.
Very informative post.Much thanks again. Really Cool.
I cannot thank you enough for the blog.Thanks Again. Keep writing.
Fantastic blog post.Really looking forward to read more. Really Cool.
I value the blog article.Really looking forward to read more. Will read on…
Really informative blog post.Really looking forward to read more. Cool.
Thank you for your post.Much thanks again. Really Great.
Very neat blog.Much thanks again. Cool.
A round of applause for your blog article.Thanks Again.
Looking forward to reading more. Great post.Really thank you! Want more.
Fantastic blog post.Much thanks again. Will read on…
Really enjoyed this article post. Fantastic.
Thanks a lot for the blog article.Really looking forward to read more. Much obliged.
“wow, awesome blog post.Really looking forward to read more. Cool.”
I truly appreciate this blog post.Much thanks again. Cool.
Thanks so much for the article post.Thanks Again. Awesome.
Major thankies for the blog article.Really looking forward to read more. Great.
Im thankful for the post.Really looking forward to read more. Want more.
Thanks so much for the post. Fantastic.
“Say, you got a nice post.Thanks Again. Will read on…”
Very neat post. Much obliged.
Major thanks for the article. Fantastic.
Very neat article post.Really thank you! Really Cool.
Thank you for your blog post.Really looking forward to read more. Really Cool.
I truly appreciate this blog. Really Great.
Very neat article post. Want more.
Im thankful for the article post. Much obliged.
Looking forward to reading more. Great article post.Really thank you! Much obliged.
Fantastic article. Will read on…
Major thanks for the post.Really thank you! Great.
I truly appreciate this post.Really looking forward to read more. Fantastic.
Fantastic blog post.Really looking forward to read more. Want more.
Thank you ever so for you blog.Really thank you! Really Great.
Awesome article.Much thanks again. Cool.
I truly appreciate this post.Really looking forward to read more. Much obliged.
Thank you for your blog.Really thank you! Really Cool.
Thanks again for the article.Much thanks again. Keep writing.
Thank you ever so for you article post. Really Cool.
Awesome blog. Fantastic.
“Say, you got a nice blog article.Really thank you! Really Cool.”
Im obliged for the article.Really thank you!
Thanks for the article post.Thanks Again. Really Cool.
I value the blog article.Really looking forward to read more.
Major thankies for the article post.Really looking forward to read more. Keep writing.
Thanks so much for the blog.Thanks Again. Really Cool.
“Appreciate you sharing, great post.Really thank you! Fantastic.”
Thanks so much for the post. Want more.
Thanks again for the blog post.Much thanks again. Awesome.
Major thankies for the blog post. Awesome.
I am so grateful for your article.Much thanks again. Much obliged.
Thanks-a-mundo for the blog article. Keep writing.
“Great, thanks for sharing this post.Much thanks again. Really Great.”
I really liked your blog post.Really looking forward to read more. Great.
Thanks-a-mundo for the article.Really thank you! Awesome.
“Appreciate you sharing, great blog post.Really thank you! Keep writing.”
Major thankies for the blog article.Thanks Again. Keep writing.
Major thanks for the blog article.Thanks Again.
Im thankful for the blog article. Really Great.
I really liked your blog post.Much thanks again. Will read on…
Im thankful for the article.Much thanks again. Cool.
I really like and appreciate your blog article.Really looking forward to read more. Keep writing.
Thank you ever so for you blog post.Really thank you! Want more.
Really informative blog article.Much thanks again. Really Great.
Really appreciate you sharing this blog article.Thanks Again. Much obliged.
A round of applause for your article.Really looking forward to read more. Much obliged.
Thank you for your blog article. Really Great.
I truly appreciate this blog post.Thanks Again.
I appreciate you sharing this article post.Really looking forward to read more. Awesome.
“Great, thanks for sharing this post.Thanks Again. Really Cool.”
Thank you for your blog article. Cool.
I am so grateful for your blog article.Really looking forward to read more. Want more.
Im thankful for the blog.Thanks Again. Really Great.
Very neat blog post.Really thank you! Will read on…
“Great, thanks for sharing this article.Much thanks again. Cool.”
Im obliged for the post. Awesome.
Very good blog article.Really looking forward to read more. Will read on…
I am so grateful for your article.Really thank you! Really Cool.
Major thankies for the article post.Really looking forward to read more. Really Great.
A big thank you for your blog post.Much thanks again. Will read on…
Muchos Gracias for your post.Really thank you! Really Cool.
I am so grateful for your blog post.Really looking forward to read more. Great.
Thanks a lot for the article.Thanks Again. Want more.
I think this is a real great blog article.Much thanks again. Awesome.
I am so grateful for your blog post.Thanks Again. Fantastic.
“Thanks for sharing, this is a fantastic blog post. Cool.”
A big thank you for your post.Really thank you! Cool.
Major thanks for the article post.Really looking forward to read more.
“Great, thanks for sharing this article post.Really looking forward to read more. Fantastic.”
Very good post.Much thanks again.
Thanks again for the blog article.Much thanks again. Awesome.
Im obliged for the blog.Thanks Again. Much obliged.
Really appreciate you sharing this article post.Much thanks again. Really Cool.
Very neat article post.Much thanks again. Keep writing.
Thank you for your article post.Really looking forward to read more. Really Cool.
I really like and appreciate your post.Thanks Again. Really Great.
I think this is a real great post.Really thank you! Really Great.
Major thankies for the blog.Much thanks again.
Im grateful for the blog.Much thanks again. Great.
Very good article post.Really thank you! Will read on…
Im thankful for the post.Really looking forward to read more. Great.
I appreciate you sharing this blog.Really looking forward to read more. Want more.
Thank you ever so for you blog article.Really thank you! Keep writing.
“Great, thanks for sharing this post. Will read on…”
Thank you ever so for you blog post.Really thank you! Keep writing.
“Great, thanks for sharing this article. Cool.”
Really informative blog article.Thanks Again.
A big thank you for your post. Really Great.
I really liked your blog article.Really looking forward to read more. Awesome.
Im obliged for the blog article.Really thank you! Will read on…
Muchos Gracias for your blog article.Really looking forward to read more. Really Great.
I appreciate you sharing this blog post.Thanks Again. Great.
Awesome article. Really Cool.
Thank you ever so for you blog post. Fantastic.
Im thankful for the article post.Really looking forward to read more. Will read on…
“Hey, thanks for the article post.Really thank you! Want more.”
Major thankies for the blog post.Much thanks again. Great.
Thank you for your blog.Really thank you! Much obliged.
I loved your blog post.Really looking forward to read more.
I really like and appreciate your blog article.Really thank you! Fantastic.
Muchos Gracias for your blog.Really looking forward to read more. Really Great.
I really liked your post.Thanks Again. Will read on…
Very informative blog post.Really thank you! Cool.
I think this is a real great blog.Really looking forward to read more. Want more.
Enjoyed every bit of your blog article.Thanks Again. Much obliged.
Thanks-a-mundo for the blog. Want more.
“Say, you got a nice blog article.Really thank you! Will read on…”
“Great, thanks for sharing this blog post.Thanks Again. Keep writing.”
“Thanks for sharing, this is a fantastic article.Really thank you! Want more.”
A big thank you for your blog article.Really thank you! Fantastic.
“Great, thanks for sharing this blog.Really thank you! Really Cool.”
I cannot thank you enough for the article.Thanks Again. Fantastic.
Thank you ever so for you blog post.Thanks Again. Awesome.
“Hey, thanks for the blog article.Really looking forward to read more. Awesome.”
Really appreciate you sharing this article.Thanks Again. Really Great.
Major thanks for the article post.Thanks Again. Fantastic.
Thanks again for the article post.Much thanks again. Much obliged.
I truly appreciate this blog article. Fantastic.
I think this is a real great article.Really thank you! Will read on…
“Great, thanks for sharing this article post.Thanks Again. Cool.”
I truly appreciate this article post.Really thank you! Awesome.
“Say, you got a nice article post.Thanks Again. Really Cool.”
Thanks again for the blog.Much thanks again. Really Great.
A round of applause for your article post.Really thank you! Want more.
Muchos Gracias for your article.Really looking forward to read more.
Looking forward to reading more. Great post.Really thank you! Keep writing.
I am so grateful for your blog.Really thank you! Really Cool.
I really liked your article post.Thanks Again. Really Great.
A big thank you for your article post.Much thanks again. Will read on…
This is one awesome blog.Thanks Again.
I appreciate you sharing this blog.Much thanks again. Want more.
“Wow, great article post.Really thank you! Really Great.”
Thanks so much for the article post. Will read on…
“Wow, great article post.Really looking forward to read more. Great.”
I loved your post.Really thank you! Really Cool.
I truly appreciate this post.Much thanks again. Will read on…
Great blog article.Much thanks again.
Thank you for your article post. Awesome.
Thank you for your post. Really Great.
Thanks a lot for the blog article.Really thank you! Want more.
Muchos Gracias for your blog post.Thanks Again. Really Great.
Im thankful for the blog article.Much thanks again. Really Great.
Looking forward to reading more. Great article.Thanks Again. Really Cool.
Really appreciate you sharing this article.Thanks Again.
Thanks again for the article post.Really thank you! Much obliged.
Im obliged for the blog.Really thank you! Much obliged.
I truly appreciate this blog article.Much thanks again. Cool.
Really enjoyed this article post.Thanks Again. Will read on…
I loved your article.Really looking forward to read more. Really Cool.
Fantastic blog article.Really thank you! Cool.
Really enjoyed this blog article.Much thanks again. Great.
Great blog.Thanks Again. Great.
I think this is a real great post.Really thank you! Keep writing.
I really liked your blog article.Really looking forward to read more. Cool.
Muchos Gracias for your post.Really looking forward to read more. Really Cool.
Thanks again for the blog article.Much thanks again. Want more.
Thanks a lot for the blog post.Much thanks again. Much obliged.
“Wow, great blog post.Thanks Again. Keep writing.”
I value the blog.Really thank you! Awesome.
I really enjoy the blog post.Really thank you! Really Great.
I cannot thank you enough for the blog.Much thanks again.
Thank you ever so for you post. Fantastic.
Very informative blog article.Much thanks again. Will read on…
“wow, awesome article post.Thanks Again. Want more.”
Looking forward to reading more. Great article.Really looking forward to read more. Keep writing.
Im thankful for the article post.Really thank you! Much obliged.
Thanks again for the blog.Really looking forward to read more. Will read on…
Thanks a lot for the article post.Really thank you! Great.
“wow, awesome blog article. Cool.”
Thanks again for the blog post.Really looking forward to read more. Will read on…
Really enjoyed this blog post.Really thank you! Cool.
“Say, you got a nice blog post.Much thanks again. Really Great.”
“Thanks for sharing, this is a fantastic blog article.Much thanks again. Fantastic.”
Thank you for your blog.Much thanks again. Want more.
“Say, you got a nice blog article.Thanks Again. Will read on…”
Very informative article.Really looking forward to read more. Fantastic.
“Thanks for sharing, this is a fantastic article.Much thanks again. Fantastic.”
I really liked your blog article.Really looking forward to read more. Want more.
Major thankies for the article.Really thank you! Really Cool.
Very good article. Great.
“Great, thanks for sharing this blog.Much thanks again. Will read on…”
“Great, thanks for sharing this article.Much thanks again. Awesome.”
A round of applause for your article.Thanks Again. Want more.
“Appreciate you sharing, great article.Really looking forward to read more. Great.”
Looking forward to reading more. Great article.Much thanks again. Keep writing.
A round of applause for your blog post.Thanks Again. Fantastic.
Great blog.Really thank you! Really Great.
I am so grateful for your blog. Really Great.
“Thanks for sharing, this is a fantastic post. Cool.”
I value the blog.Really looking forward to read more. Cool.
I value the blog article.Much thanks again. Fantastic.
I value the blog post. Fantastic.
This is one awesome article post.Really thank you!
I cannot thank you enough for the blog article.Really thank you!
Thanks-a-mundo for the article. Really Great.
“Say, you got a nice article post.Much thanks again.”
I am so grateful for your blog.Much thanks again. Really Cool.
Muchos Gracias for your blog post.Really thank you! Great.
Thanks again for the blog article. Want more.
Thank you ever so for you post.Thanks Again. Keep writing.
I cannot thank you enough for the blog.Really thank you! Much obliged.
This is one awesome blog article.Really looking forward to read more. Great.
I am so grateful for your blog.Really thank you! Will read on…
Really informative blog post. Will read on…
“Say, you got a nice article.Really thank you! Will read on…”
Thanks a lot for the blog.Much thanks again. Will read on…
Awesome post.Thanks Again. Cool.
Really informative blog.Really looking forward to read more. Great.
Very informative blog post.Really looking forward to read more. Keep writing.
Enjoyed every bit of your blog.Really looking forward to read more. Really Cool.
“Thanks for sharing, this is a fantastic article.Thanks Again. Will read on…”
I am so grateful for your blog post.Really thank you! Cool.
I am so grateful for your blog.Really looking forward to read more. Much obliged.
Major thankies for the article.Really thank you! Really Great.
Thank you for your blog article.Really looking forward to read more. Great.
“wow, awesome post.Thanks Again. Much obliged.”
A big thank you for your blog article.Thanks Again. Will read on…
Im obliged for the post.Much thanks again. Want more.
Thanks a lot for the article.Thanks Again.
I truly appreciate this article.Thanks Again. Awesome.
Great article post.Much thanks again. Really Cool.
“Appreciate you sharing, great blog.Really looking forward to read more. Really Great.”
I really like and appreciate your post.Thanks Again. Want more.
I am so grateful for your blog.Really looking forward to read more. Fantastic.
A round of applause for your blog article.Really looking forward to read more. Great.
Thanks so much for the article.Thanks Again. Keep writing.
Enjoyed every bit of your blog.Really looking forward to read more. Fantastic.
“Great, thanks for sharing this blog.Really looking forward to read more. Really Cool.”
I am so grateful for your blog post.Thanks Again. Will read on…
I really enjoy the blog article. Fantastic.
Enjoyed every bit of your blog post. Great.
I value the article post.Really thank you! Cool.
“Appreciate you sharing, great blog post. Awesome.”
“Appreciate you sharing, great post.Really looking forward to read more. Really Great.”
I really like and appreciate your post.Really thank you! Great.
Great article post.Much thanks again. Will read on…
Thanks again for the article.Thanks Again. Great.
I really liked your article post.Really thank you! Cool.
Awesome blog.Much thanks again.
“Wow, great article.Much thanks again. Want more.”
Thank you for your article.Really thank you! Awesome.
“Wow, great blog.Really thank you!”
Very informative blog post.Thanks Again. Cool.
I really like and appreciate your article post.Much thanks again. Want more.
Major thankies for the blog article.Really thank you! Want more.
Muchos Gracias for your article post.Really thank you! Awesome.
“Hey, thanks for the article post.Thanks Again.”
Fantastic article post.Thanks Again.
Really informative blog.Much thanks again. Keep writing.
I cannot thank you enough for the blog.Really looking forward to read more. Really Great.
I really enjoy the article.Thanks Again. Awesome.
I appreciate you sharing this blog article.Really thank you! Fantastic.
I appreciate you sharing this blog article.Really thank you! Want more.
Muchos Gracias for your blog article.Really looking forward to read more. Will read on…
Great blog.Much thanks again. Really Cool.
Muchos Gracias for your article post.Thanks Again. Will read on…
“wow, awesome article.Really looking forward to read more. Fantastic.”
Im obliged for the article post.Really looking forward to read more. Cool.
This is one awesome blog.Much thanks again. Much obliged.
Really enjoyed this article post.Much thanks again. Cool.
Thanks a lot for the blog.Really thank you! Want more.
Looking forward to reading more. Great article post.Much thanks again. Keep writing.
“Appreciate you sharing, great post.Really thank you! Much obliged.”
Great post.Really thank you! Awesome.
“Wow, great article.Much thanks again. Will read on…”
I value the blog article.Really thank you! Keep writing.
Thank you for your blog.Really thank you! Awesome.
A big thank you for your blog article.Much thanks again. Great.
Very good blog article. Will read on…
I loved your blog article.Really thank you! Cool.
“Great, thanks for sharing this article post.Thanks Again. Great.”
Very neat blog article. Keep writing.
I think this is a real great blog article.Really looking forward to read more. Much obliged.
I appreciate you sharing this blog post.Much thanks again. Cool.
Enjoyed every bit of your blog post.Thanks Again. Will read on…
“Say, you got a nice article.Much thanks again. Great.”
I truly appreciate this article.Much thanks again. Want more.
I really like and appreciate your blog article. Fantastic.
Very good post.Thanks Again. Fantastic.
Major thanks for the article.Much thanks again. Really Cool.
Thank you ever so for you blog.Really looking forward to read more. Really Cool.
Really appreciate you sharing this article. Much obliged.
I really like and appreciate your blog.Much thanks again. Cool.
A big thank you for your article.Really looking forward to read more.
Thanks for the article.Much thanks again. Keep writing.
Awesome post.Really looking forward to read more. Much obliged.
I cannot thank you enough for the post.Much thanks again.
I appreciate you sharing this article post. Keep writing.
I appreciate you sharing this article.Really thank you!
Very informative blog.Much thanks again. Much obliged.
Thanks again for the article post.Much thanks again. Really Cool.
“Appreciate you sharing, great blog post.Thanks Again. Really Cool.”
Thanks-a-mundo for the blog post.Really thank you! Much obliged.
Muchos Gracias for your blog article.Thanks Again. Really Great.
Thank you ever so for you article post.Much thanks again. Great.
Very informative article.Really looking forward to read more. Want more.
Thanks so much for the post.Really looking forward to read more. Much obliged.
Really informative article.Really looking forward to read more. Fantastic.
Very informative blog.Really thank you! Keep writing.
Great post.Really looking forward to read more. Really Cool.
Very good blog post.Really thank you! Really Great.
Looking forward to reading more. Great blog post.Much thanks again. Fantastic.
Im obliged for the blog.Really thank you! Great.
“Say, you got a nice blog.Really looking forward to read more. Will read on…”
Thanks a lot for the article post.Really looking forward to read more. Awesome.
Thanks for the post.Much thanks again. Really Great.
Fantastic article.Thanks Again. Really Cool.
Awesome blog.Thanks Again. Much obliged.
A big thank you for your article.Really thank you! Awesome.
Great blog.Much thanks again. Fantastic.
Thanks so much for the article.Really looking forward to read more. Much obliged.
Thank you for your article post. Much obliged.
I value the blog.Really thank you! Will read on…
Major thankies for the blog.Really looking forward to read more. Want more.
Fantastic blog article.
Thanks for the article post. Awesome.
Major thanks for the article.Thanks Again. Keep writing.
Very neat blog article.Really looking forward to read more. Great.
A big thank you for your article.Much thanks again. Great.
I really like and appreciate your article. Fantastic.
Very informative article.Really thank you! Cool.
Im grateful for the blog.Much thanks again. Much obliged.
I am so grateful for your article post.Really thank you! Much obliged.
Very neat blog article.Really thank you! Keep writing.
I truly appreciate this article post.Really looking forward to read more. Awesome.
Really appreciate you sharing this blog post.Really thank you! Cool.
Thanks-a-mundo for the blog.Thanks Again. Awesome.
“wow, awesome blog article.”
“Thanks for sharing, this is a fantastic blog.Really thank you! Really Great.”
Very neat article post.Thanks Again.
“Thanks for sharing, this is a fantastic blog. Fantastic.”
I truly appreciate this post.Much thanks again. Much obliged.
A round of applause for your post. Want more.
I cannot thank you enough for the blog.Much thanks again. Really Great.
Major thanks for the article post.Really looking forward to read more. Really Great.
Very neat blog.Really looking forward to read more. Keep writing.
Im grateful for the blog post.Really thank you! Awesome.
I think this is a real great blog post.Really thank you! Fantastic.
Im grateful for the post.Really looking forward to read more. Keep writing.
I really liked your article post.
Thanks a lot for the article.Really thank you! Really Great.
I really enjoy the article post.Much thanks again. Keep writing.
Really informative article post. Will read on…
Awesome blog post.
Thanks again for the blog. Keep writing.
Im grateful for the blog.Thanks Again. Will read on…
Looking forward to reading more. Great blog.Really thank you! Much obliged.
“Appreciate you sharing, great post. Fantastic.”
I really enjoy the blog post.Really looking forward to read more. Really Great.
“Appreciate you sharing, great blog.Thanks Again.”
Major thankies for the post.
I cannot thank you enough for the blog. Really Great.
Im thankful for the post.Really looking forward to read more. Cool.
Major thankies for the blog post. Really Great.
Awesome blog.Really thank you! Cool.
“Great, thanks for sharing this blog post. Will read on…”
This is one awesome blog post.Really looking forward to read more. Really Cool.
Thank you ever so for you blog. Great.
Really appreciate you sharing this blog post.Thanks Again. Really Great.
Really appreciate you sharing this blog article.Thanks Again. Great.
I really like and appreciate your blog.Much thanks again. Really Great.
Really appreciate you sharing this post.Much thanks again. Great.
Thank you for your post.Much thanks again. Want more.
“Say, you got a nice blog article. Much obliged.”
“Wow, great blog article. Much obliged.”
I am so grateful for your article.Much thanks again.
Very neat blog post. Cool.
A big thank you for your blog post.Thanks Again.
I am so grateful for your article.Thanks Again. Much obliged.
Im obliged for the post.Much thanks again. Will read on…
“Say, you got a nice article.Thanks Again. Keep writing.”
“Hey, thanks for the article. Great.”
Thanks for the blog.Much thanks again. Really Great.
Thanks so much for the article post.Thanks Again. Great.
I think this is a real great article. Much obliged.
Thank you ever so for you post.Much thanks again. Awesome.
“Say, you got a nice article post.Really thank you! Really Great.”
I appreciate you sharing this article post.Much thanks again. Awesome.
Very good article post. Keep writing.
Major thankies for the article.Much thanks again. Much obliged.
Thanks for the article post.Really looking forward to read more. Fantastic.
“Wow, great blog article.Really looking forward to read more. Awesome.”
I really enjoy the blog post.Thanks Again. Really Cool.
Very good blog article. Awesome.
Thanks for the blog.Thanks Again. Fantastic.
“Great, thanks for sharing this blog post.Really looking forward to read more. Will read on…”
“Wow, great blog article.Thanks Again. Keep writing.”
Looking forward to reading more. Great blog.Thanks Again. Really Cool.
Thanks again for the article post.Thanks Again. Great.
Thanks again for the blog.Really thank you! Really Cool.
Thank you for your blog. Great.
“Say, you got a nice blog.Thanks Again.”
A big thank you for your post. Want more.
Really informative post.Thanks Again. Really Cool.
“Great, thanks for sharing this blog.Much thanks again. Really Cool.”
I really enjoy the blog. Great.
Very neat article post.Really thank you! Keep writing.
Really informative post.Really looking forward to read more. Fantastic.
Awesome blog.Really looking forward to read more. Will read on…
Thanks so much for the article.Really thank you! Fantastic.
“Say, you got a nice blog.Much thanks again. Really Great.”
“Wow, great blog.Really looking forward to read more.”
Looking forward to reading more. Great article. Really Cool.
Im thankful for the article.Thanks Again. Really Great.
Fantastic article post.Really looking forward to read more. Great.
Thanks a lot for the blog article.Thanks Again. Fantastic.
Fantastic blog post.Thanks Again. Keep writing.
Fantastic article post.Really looking forward to read more. Really Great.
Very good blog.Thanks Again. Will read on…
Thanks so much for the blog post.Thanks Again.
Thanks so much for the post.Thanks Again. Really Cool.
Fantastic post.Really looking forward to read more. Will read on…
Thanks a lot for the blog article.Thanks Again. Really Great.
I really enjoy the article. Will read on…
“wow, awesome post.Really thank you!”
I really liked your article.Thanks Again. Cool.
Really informative article post.Really looking forward to read more. Keep writing.
“Thanks for sharing, this is a fantastic article post.Really thank you! Really Great.”
I cannot thank you enough for the blog.Really thank you! Great.
“Great, thanks for sharing this blog. Really Great.”
Enjoyed every bit of your blog. Awesome.
Looking forward to reading more. Great article post.Really thank you! Cool.
A round of applause for your article post.Really looking forward to read more.
This is one awesome article.Really looking forward to read more. Much obliged.
Thanks so much for the article post.Much thanks again. Keep writing.
Really informative blog. Really Cool.
Im obliged for the post.Really thank you! Much obliged.
Awesome blog article.Thanks Again. Really Cool.
Very neat article.Really looking forward to read more. Want more.
Thank you for your blog article. Awesome.
Enjoyed every bit of your blog.Really thank you! Keep writing.
Awesome blog article. Great.
“Wow, great blog post.Thanks Again. Want more.”
Thanks-a-mundo for the article.Thanks Again. Will read on…
Thanks again for the article.Much thanks again. Cool.
Awesome blog post. Keep writing.
“Great, thanks for sharing this article post.Really looking forward to read more. Awesome.”
Muchos Gracias for your blog post.Really thank you!
“wow, awesome article.Really thank you! Really Great.”
“Appreciate you sharing, great blog.Really looking forward to read more. Fantastic.”
“Thanks for sharing, this is a fantastic article post.Much thanks again. Really Cool.”
“Hey, thanks for the blog post. Want more.”
Very good post. Want more.
A round of applause for your blog post.Much thanks again.
Really enjoyed this blog. Will read on…
“Wow, great article post.Thanks Again. Really Cool.”
“Thanks for sharing, this is a fantastic post. Really Cool.”
I cannot thank you enough for the article.Thanks Again. Really Cool.
This is one awesome blog. Want more.
“wow, awesome blog post. Cool.”
“Hey, thanks for the blog post.Thanks Again. Cool.”
Major thanks for the article post.Really looking forward to read more. Want more.
“Appreciate you sharing, great article.Much thanks again. Awesome.”
Thank you for your article post.Really thank you! Really Cool.
I really like and appreciate your article.Much thanks again. Will read on…
“Appreciate you sharing, great article.Really looking forward to read more. Will read on…”
Very good article. Keep writing.
Major thankies for the blog.Much thanks again. Much obliged.
Thank you for your blog.Much thanks again. Really Great.
“Hey, thanks for the blog.Really looking forward to read more. Great.”
I loved your blog.Much thanks again. Cool.
I really liked your post. Much obliged.
Really appreciate you sharing this blog article.Really thank you! Cool.
Awesome blog article.Thanks Again. Much obliged.
Really appreciate you sharing this blog. Great.
Thanks a lot for the blog.Much thanks again. Cool.
Enjoyed every bit of your article post.Really looking forward to read more. Much obliged.
Thanks again for the post.Thanks Again. Awesome.
Really enjoyed this blog article.Thanks Again. Cool.
Thanks a lot for the blog article.Really looking forward to read more. Really Cool.
Thanks a lot for the article post.Really thank you! Awesome.
A big thank you for your blog.Really thank you! Keep writing.
A big thank you for your blog.Really looking forward to read more. Great.
I think this is a real great blog article.Much thanks again. Much obliged.
Fantastic article.Thanks Again. Keep writing.
Looking forward to reading more. Great article.Really looking forward to read more. Awesome.
Very good blog article.Really looking forward to read more. Keep writing.
I value the blog.Thanks Again. Want more.
“Say, you got a nice post.Much thanks again. Fantastic.”
I really enjoy the article post. Much obliged.
Im thankful for the blog post. Awesome.
I am so grateful for your article.Really thank you! Fantastic.
I appreciate you sharing this blog. Will read on…
I cannot thank you enough for the blog.Thanks Again. Much obliged.
Thanks a lot for the article post.Much thanks again. Great.
“Wow, great article post.Thanks Again.”
I really like and appreciate your article post.Really looking forward to read more. Will read on…
Major thankies for the blog.Thanks Again. Want more.
“wow, awesome blog.Really looking forward to read more. Want more.”
Thanks-a-mundo for the blog.Much thanks again. Will read on…
A big thank you for your article post.Thanks Again. Fantastic.
Enjoyed every bit of your post.Much thanks again. Fantastic.
A round of applause for your article.Really thank you! Awesome.
I am so grateful for your blog post.Thanks Again. Much obliged.
Awesome article.Much thanks again. Will read on…
Thanks again for the post.Much thanks again. Really Cool.
“Great, thanks for sharing this article post.Really looking forward to read more. Great.”
I loved your article post.Really looking forward to read more. Much obliged.
This is one awesome article post. Keep writing.
“Hey, thanks for the blog.Really looking forward to read more. Really Cool.”
Fantastic blog post.Much thanks again.
“Hey, thanks for the blog article. Will read on…”
A round of applause for your post.Really looking forward to read more. Really Cool.
Enjoyed every bit of your blog. Much obliged.
I cannot thank you enough for the article.Much thanks again.
I really like and appreciate your post.Really thank you! Really Cool.
Major thankies for the post.Really thank you! Want more.
Fantastic article post.Really looking forward to read more. Really Cool.
Really informative post.Really looking forward to read more. Cool.
“Great, thanks for sharing this blog post.Much thanks again. Awesome.”
This is one awesome blog. Fantastic.
Very informative blog. Much obliged.
“Great, thanks for sharing this blog post.Much thanks again. Fantastic.”
Thanks-a-mundo for the article.Thanks Again. Want more.
Fantastic article post.Really thank you! Want more.
Thank you ever so for you article.Much thanks again.
“Say, you got a nice blog article.Much thanks again. Awesome.”
This is one awesome post. Great.
I truly appreciate this blog post.Really thank you! Fantastic.
Im obliged for the blog article.Really thank you! Want more.
Really enjoyed this blog article.Thanks Again. Really Great.
A round of applause for your blog article.Much thanks again. Keep writing.
Really appreciate you sharing this article.Much thanks again. Will read on…
Really enjoyed this article post.
I really liked your article.Really thank you! Great.
Really appreciate you sharing this blog post.Thanks Again. Awesome.
I really liked your post.Much thanks again. Will read on…
Thanks for the blog.Much thanks again. Want more.
I really enjoy the article.Much thanks again. Fantastic.
Looking forward to reading more. Great article.Really thank you! Will read on…
Fantastic blog article.Much thanks again. Keep writing.
“Wow, great post.Really looking forward to read more. Fantastic.”
I truly appreciate this blog post.Thanks Again. Will read on…
Looking forward to reading more. Great blog post.Much thanks again. Want more.
I think this is a real great post.Really looking forward to read more. Awesome.
Very good blog.Much thanks again. Fantastic.
I appreciate you sharing this blog post.Really thank you! Really Cool.
“wow, awesome post.Really looking forward to read more. Really Cool.”
Thank you for your blog.Really thank you! Cool.
Im grateful for the blog article.Much thanks again. Cool.
Im grateful for the blog post.Thanks Again. Great.
A round of applause for your blog post. Awesome.
I think this is a real great blog. Much obliged.
“Appreciate you sharing, great blog post.Much thanks again.”
Thanks-a-mundo for the article.Much thanks again. Want more.
“Wow, great post.Much thanks again. Fantastic.”
I loved your article post. Fantastic.
Great blog.Really thank you!
Thanks so much for the post.Really looking forward to read more. Want more.
Thanks-a-mundo for the blog.Really looking forward to read more. Want more.
Muchos Gracias for your article post.Thanks Again. Really Great.
“Wow, great post.Much thanks again. Much obliged.”
A round of applause for your blog post.Thanks Again. Really Great.
Thanks a lot for the post.Really looking forward to read more. Awesome.
Really informative article. Much obliged.
“Thanks for sharing, this is a fantastic blog post.Thanks Again. Cool.”
Im thankful for the blog post.Really thank you! Keep writing.
I cannot thank you enough for the blog.Thanks Again. Cool.
Fantastic article post. Cool.
Major thanks for the article.Thanks Again. Will read on…
“Appreciate you sharing, great blog article.Really looking forward to read more. Really Great.”
I cannot thank you enough for the article. Really Cool.
“Say, you got a nice blog.Thanks Again. Really Cool.”
I appreciate you sharing this article post. Fantastic.
“Hey, thanks for the blog.Much thanks again. Will read on…”
I loved your blog post.Really looking forward to read more. Awesome.
Really appreciate you sharing this post.Really looking forward to read more. Want more.
I really like and appreciate your blog post.Much thanks again. Fantastic.
Thanks for the blog article.Really looking forward to read more. Will read on…
Very neat blog article.Much thanks again. Cool.
A big thank you for your blog post.Really thank you!
I really liked your article.Thanks Again. Really Cool.
Very neat article post.Much thanks again. Will read on…
A big thank you for your blog post.Really looking forward to read more.
“Appreciate you sharing, great blog.Thanks Again. Awesome.”
“Appreciate you sharing, great post.Really thank you! Really Cool.”
Thank you for your article post.Really thank you! Great.
Great blog article.Much thanks again. Really Great.
I really liked your blog article.Much thanks again. Keep writing.
Thank you for your blog post.Thanks Again.
Really appreciate you sharing this article.Much thanks again. Really Great.
“Great, thanks for sharing this article post. Fantastic.”
I think this is a real great post.Really thank you! Awesome.
Thanks a lot for the blog article.Really thank you! Great.
Im grateful for the blog post.Much thanks again. Want more.
Looking forward to reading more. Great article post.Really thank you! Fantastic.
Enjoyed every bit of your blog.Thanks Again. Cool.
Awesome post. Cool.
I value the blog. Keep writing.
Fantastic blog post. Really Cool.
“Say, you got a nice article post. Will read on…”
Major thankies for the post.Thanks Again. Really Great.
Very good article.Much thanks again. Cool.
“Thanks for sharing, this is a fantastic article post.Much thanks again. Cool.”
Really enjoyed this blog post.Really looking forward to read more. Want more.
Thanks for the post. Great.
Thanks so much for the blog.Really thank you! Want more.
Looking forward to reading more. Great post.Really looking forward to read more. Really Cool.
I really like and appreciate your article post.Really thank you! Really Cool.
Im grateful for the article post.Really looking forward to read more. Fantastic.
Very informative post.Really looking forward to read more. Much obliged.
Thanks a lot for the article post.Really looking forward to read more. Want more.
Muchos Gracias for your article post.Really thank you!
Thanks so much for the blog article.Much thanks again.
Im grateful for the blog article.Really looking forward to read more. Cool.
Really enjoyed this article. Much obliged.
Im grateful for the blog post.Thanks Again. Keep writing.
“Hey, thanks for the blog article.Really thank you! Will read on…”
I think this is a real great article.Really looking forward to read more. Much obliged.
I value the post. Much obliged.
I value the article post.Thanks Again. Much obliged.
Major thankies for the blog article. Awesome.
This is one awesome post. Much obliged.
I cannot thank you enough for the article post. Really Cool.
Fantastic post. Great.
“Hey, thanks for the blog post.Really looking forward to read more. Fantastic.”
Great blog.Thanks Again. Will read on…
This is one awesome blog post.Thanks Again. Awesome.
I cannot thank you enough for the article.Much thanks again. Much obliged.
This is one awesome blog article. Will read on…
“Say, you got a nice blog post.Really looking forward to read more. Cool.”
Looking forward to reading more. Great blog post.Much thanks again. Really Great.
I am so grateful for your blog article.Thanks Again. Really Great.
Looking forward to reading more. Great blog.Really looking forward to read more. Keep writing.
This is one awesome article.Thanks Again. Awesome.
Thank you for your post.Thanks Again. Cool.
A big thank you for your blog article. Really Cool.
Really enjoyed this blog.Thanks Again. Keep writing.
I think this is a real great article post.Thanks Again. Much obliged.
Major thanks for the blog.Really looking forward to read more. Keep writing.
I really like and appreciate your post.Much thanks again. Really Cool.
A round of applause for your article.Much thanks again. Really Cool.
I really liked your blog article.Really looking forward to read more. Will read on…
I really like and appreciate your blog post.Much thanks again. Much obliged.
Im grateful for the blog.Thanks Again. Great.
Really enjoyed this blog post.Thanks Again. Really Great.
“Hey, thanks for the blog. Awesome.”
I value the article post.Much thanks again. Great.
I really liked your post.Thanks Again. Cool.
I truly appreciate this article post.Much thanks again. Cool.
Thanks for the post. Want more.
Really informative blog.Really thank you! Awesome.
I value the article post. Really Cool.
I appreciate you sharing this article post.Really looking forward to read more. Want more.
“Hey, thanks for the article post.Much thanks again. Keep writing.”
A round of applause for your blog post. Keep writing.
Very informative blog article. Want more.
“Say, you got a nice article.Much thanks again. Fantastic.”
Thanks for the post.Thanks Again. Really Cool.
“Say, you got a nice post.Really looking forward to read more. Awesome.”
I am so grateful for your article.Really thank you! Cool.
Very informative post.Really thank you! Will read on…
A round of applause for your blog article.Really thank you! Great.
Awesome blog article.Really thank you!
Thanks a lot for the article post.
Looking forward to reading more. Great post. Fantastic.
This is one awesome blog article.Really thank you! Keep writing.
“wow, awesome blog post.Thanks Again. Cool.”
Looking forward to reading more. Great article post.Thanks Again. Fantastic.
I really like and appreciate your blog article. Will read on…
Major thankies for the article. Awesome.
I am so grateful for your post.Really thank you! Will read on…
Enjoyed every bit of your article. Keep writing.
Muchos Gracias for your blog.Really looking forward to read more. Fantastic.
Looking forward to reading more. Great blog post.Thanks Again. Will read on…
Major thanks for the blog post.Really thank you! Keep writing.
I really liked your blog post.Thanks Again. Great.
Major thankies for the article post.Really looking forward to read more.
A big thank you for your blog article.Thanks Again.
Really appreciate you sharing this blog post.Really looking forward to read more. Really Great.
Very good blog post.Much thanks again. Cool.
Fantastic article post.Really looking forward to read more. Much obliged.
I really enjoy the article post.Thanks Again. Much obliged.
Thank you for your article post.Much thanks again. Really Cool.
“Wow, great article.Thanks Again. Really Cool.”
Im obliged for the blog post.Much thanks again. Will read on…
Thanks again for the post.Really looking forward to read more.
I think this is a real great article. Want more.
Major thanks for the post.Really looking forward to read more. Awesome.
Thank you for your blog.Thanks Again. Really Great.
I really like and appreciate your article post. Will read on…
Awesome blog.Thanks Again. Cool.
Im grateful for the post.Really looking forward to read more. Really Cool.
Thank you for your article.Much thanks again. Fantastic.
I appreciate you sharing this blog post.Really looking forward to read more. Awesome.
Muchos Gracias for your article post. Really Great.
A big thank you for your blog.Really thank you! Great.
“Thanks for sharing, this is a fantastic post.Really thank you! Really Great.”
Awesome article post.Really looking forward to read more. Much obliged.
Very neat blog post.Really thank you! Really Great.
Thanks a lot for the article.Really looking forward to read more. Will read on…
I value the article post.Thanks Again. Keep writing.
I think this is a real great blog article.Really thank you!
I cannot thank you enough for the post.Much thanks again. Really Great.
This is one awesome article post.Much thanks again. Much obliged.
“Great, thanks for sharing this post.”
“Say, you got a nice article post.Thanks Again. Great.”
Thanks for the article. Great.
Awesome blog. Much obliged.
Major thanks for the article.Thanks Again.
I cannot thank you enough for the article.Much thanks again. Fantastic.
Looking forward to reading more. Great article post. Fantastic.
I loved your blog.Much thanks again. Much obliged.
Major thankies for the article.Thanks Again.
I really enjoy the blog post. Fantastic.
Thanks a lot for the blog. Will read on…
“Thanks for sharing, this is a fantastic blog post.Much thanks again. Cool.”
A round of applause for your article post. Much obliged.
I really liked your blog.Thanks Again. Fantastic.
Really enjoyed this blog post.Really looking forward to read more. Really Cool.

Written by Tony Hirst

November 30, 2011 at 10:33 am

Posted in Anything you want

Tagged with ,

Accessing and Visualising Sentencing Data for Local Courts

with 3 comments

A recent provisional data release from the Ministry of Justice contains sentencing data from English(?) courts, at the offence level, for the period July 2010-June 2011: “Published for the first time every sentence handed down at each court in the country between July 2010 and June 2011, along with the age and ethnicity of each offender.” Criminal Justice Statistics in England and Wales [data]

In this post, I’ll describe a couple of ways of working with the data to produce some simple graphical summaries of the data using Google Fusion Tables and R…

…but first, a couple of observations:

- the web page subheading is “Quarterly update of statistics on criminal offences dealt with by the criminal justice system in England and Wales.”, but the sidebar includes the link to the 12 month set of sentencing data;
- the URL of the sentencing data is http://www.justice.gov.uk/downloads/publications/statistics-and-data/criminal-justice-stats/recordlevel.zip, which does not contain a time reference, although the data is time bound. What URL will be used if data for the period 7/11-6/12 is released in the same way next year?

The data is presented as a zipped CSV file, 5.4MB in the zipped form, and 134.1MB in the unzipped form.

The unzipped CSV file is too large to upload to a Google Spreadsheet or a Google Fusion Table, which are two of the tools I use for treating large CSV files as a database, so here are a couple of ways of getting in to the data using tools I have to hand…

Unix Command Line Tools

I’m on a Mac, so like Linux users I have ready access to a Console and several common unix commandline tools that are ideally suited to wrangling text files (on Windows, I suspect you need to install something like Cygwin; a search for windows unix utilities should turn up other alternatives too).

In Playing With Large (ish) CSV Files, and Using Them as a Database from the Command Line: EDINA OpenURL Logs and Postcards from a Text Processing Excursion I give a couple of examples of how to get started with some of the Unix utilities, which we can crib from in this case. So for example, after unzipping the recordlevel.csv document I can look at the first 10 rows by opening a console window, changing directory to the directory the file is in, and running the following command:

head recordlevel.csv

Or I can pull out rows that contain a reference to the Isle of Wight using something like this command:

grep -i wight recordlevel.csv > recordsContainingWight.csv

(The -i reads: “ignoring case”; grep is a command that identifies rows contain the search term (wight in this case). The > recordsContainingWight.csv says “send the result to the file recordsContainingWight.csv” )

Having extracted rows that contain a reference to the Isle of Wight into a new file, I can upload this smaller file to a Google Spreadsheet, or as Google Fusion Table such as this one: Isle of Wight Sentencing Fusion table.

Isle fo wight sentencing data

Once in the fusion table, we can start to explore the data. So for example, we can aggregate the data around different values in a given column and then visualise the result (aggregate and filter options are available from the View menu; visualisation types are available from the Visualize menu):

Visualising data in google fusion tables

We can also introduce filters to allow use to explore subsets of the data. For example, here are the offences committed by females aged 35+:

Data exploration in Google FUsion tables

Looking at data from a single court may be of passing local interest, but the real data journalism is more likely to be focussed around finding mismatches between sentencing behaviour across different courts. (Hmm, unless we can get data on who passed sentences at a local level, and look to see if there are differences there?) That said, at a local level we could try to look for outliers maybe? As far as making comparisons go, we do have Court and Force columns, so it would be possible to compare Force against force and within a Force area, Court with Court?

R/RStudio

If you really want to start working the data, then R may be the way to go… I use RStudio to work with R, so it’s a simple matter to just import the whole of the reportlevel.csv dataset.

Once the data is loaded in, I can use a regular expression to pull out the subset of the data corresponding once again to sentencing on the Isle of Wight (i apply the regular expression to the contents of the court column:

recordlevel <- read.csv("~/data/recordlevel.csv")
iw=subset(recordlevel,grepl("wight",court,ignore.case=TRUE))

We can then start to produce simple statistical charts based on the data. For example, a bar plot of the sentencing numbers by age group:

age=table(iw$AGE)
barplot(age, main="IW: Sentencing by Age", xlab="Age Range")

R - bar plot

We can also start to look at combinations of factors. For example, how do offence types vary with age?

ageOffence=table(iw$AGE, iw$Offence_type)
barplot(ageOffence,beside=T,las=3,cex.names=0.5,main="Isle of Wight Sentences", xlab=NULL, legend = rownames(ageOffence))

R barplot - offences on IW

If we remove the beside=T argument, we can produce a stacked bar chart:

barplot(ageOffence,las=3,cex.names=0.5,main="Isle of Wight Sentences", xlab=NULL, legend = rownames(ageOffence))

R - stacked bar chart

If we import the ggplot2 library, we have even more flexibility over the presentation of the graph, as well as what we can do with this sort of chart type. So for example, here’s a simple plot of the number of offences per offence type:

require(ggplot2)
#You may need to install ggplot2 as a library if it isn't already installed
ggplot(iw, aes(factor(Offence_type)))+ geom_bar() + opts(axis.text.x=theme_text(angle=-90))+xlab('Offence Type')

GGPlot2 in R

Alternatively, we can break down offence types by age:

ggplot(iw, aes(AGE))+ geom_bar() +facet_wrap(~Offence_type)

ggplot facet barplot

We can bring a bit of colour into a stacked plot that also displays the gender split on each offence:

ggplot(iw, aes(AGE,fill=sex))+geom_bar() +facet_wrap(~Offence_type)

ggplot with stacked factor

One thing I’m not sure how to do is rip the data apart in a ggplot context so that we can display percentage breakdowns, so we could compare the percentage breakdown by offence type on sentences awarded to males vs. females, for example? If you do know how to do that, please post a comment below ;-)

PS HEre’s an easy way of getting started with ggplot… use the online hosted version at http://www.yeroon.net/ggplot2/ using this data set: wightCrimRecords.csv; download the file to your computer then upload it as shown below:

yeroon.net/ggplot2

PPS I got a little way towards identifying percentage breakdowns using a crib from here. The following command:
iwp=tapply(iw$Offence_type,iw$sex,function(x){prop.table(table(x))})
generates a (multidimensional) array for the responseVar (Offence) about the groupVar (sex). I don’t know how to generate a single data frame from this, but we can create separate ones for each sex as follows:
iwpMale=data.frame(iwp['Male'])
iwpFemale=data.frame(iwp['Female'])

We can then plot these percentages using constructions of the form:
ggplot(iwp2)+geom_bar(aes(x=Male.x,y=Male.Freq))
What I haven’t worked out how to do is elegantly map from the multidimensional array to a single data.frame? If you know how, please add a comment below…(I also posted a question on Cross Validated, the stats bit of Stack Exchange…)

Written by Tony Hirst

November 29, 2011 at 1:20 pm

Living Documents

with one comment

Way back when, when I first started blogging, I tried to push the idea of “live documents” that supported transclusion of content from elsewhere (e.g. Keeping Courses Current with Live Links; there was also a demo, but I think it’s rotted…?) A couple of days ago, Owen Stephens (re)introduced me to the notion of literate programming, “a methodology that combines a programming language with a documentation language”. The context was active reading of reactive documents, in which a reader interacts with a document that contains human readable paragraphs that describe some sort of mathematical or logical model which is embedded in the text as interactive, parameterised elements. (I can’t give a demo in this WordPress.com hosted blog because what I am allowed to do is really locked down… so to see what I’m talking about, check out the Explorable Explanations) example document… I can wait…)

Done that? Up to speed now?

I’d also come across the reactive document model recently through seeing a link (form somewhere… I can’t remember where now?:-(, to the Javascript library that was used to implement Explorable explanations: Tangle. (Having a play with it is very much on my to do list…)

My immediate impression was that it reminded me of the interactive, browser based programming style (e.g. Online Apps for Live Code Tutorials/Demos), in which learners can read and run, edit and run, and write and run, code examples in the browser (or more generally, in the context of an “electronic study guide” (eSG). It also brought to mind similarities with dexy.it and Sweave, a couple of (literate programming;-) frameworks that allow you to include programme code within a document and them execute it in order to produce an output that also appears in the document. (I remember one of the joys of course writing for an eSG is that you often have to hand over the text (including code and output in situ), a text file containing the code (for testing), and a text file containing the output. If (when) an error is found, version control across the various files can be come really problematic. Far easier if the document were to include code fragments that are then executed and used to produce the actual output that is in turn piped directy into the final document.) Wolfram’s Computable Document Format also comes to mind, as a document format that allows a reader to express executable mathematical statements, whether formally specified or, increasingly, using natural language.

So the document space I’m imagining here is one in which the document contains one or more components that are generated in response to some sort of request from an operational part of the document, or a part of the document that encodes some sort of performative action[?????], such as a search term that is used to trigger a search whose results are then included within the page, a piece of programme code that can be executed in order to generate an output, or a parameter for a model that can be run with the specified parameter value in order to produce an output that is rendered live within the document.

For example, this might include a ‘live’ document, that transcludes content from an external source:

Transclusion

A literate programme, that combines:

Literate programming

- some explanatory text;
- fragments of, or complete, programmes;
- the output of the programme.

Or a reactive document which contains:

Reactive document

- some explanatory text;
- parameterised programme code, or a parameterised mathematical or logical model; the code/model should also be executable, using parameter values specified by the reader;
- the output from executing the code or model.

(I guess a live document might be viewed as reactive in certain cases, for example, when a user specifies a search term or query that determines what content is pulled live into a document from an external source.)

There is something almost cell like going on here, in that part of the document contains the instructions that some document machinery can process in order to produce other parts of the document…

One obvious use case for living documents is in educational materials. For a long time now (even before the time of education CD-ROMs;-), eLearning materials have included interactive components. But these have often be external components that have been slotted in to the educational text, rather than being generated from the execution of a specified part of the the text. For example, many OU course materials include interactive self-assessment questions, or Flash based interactive exercises (hmm… I wonder when these are going to be rebranded as edu-apps and made available, for a fee, or via open license, in an OU edu-app market;-) [Note: the OU used to be a pretty significant educational software house in terms of output, with large numbers of highly skilled educational software developers who knew how to turn out software that worked in educational terms... but that was before the VLE came along...;-)]

Another use case is the area of data journalism. A criticism of many interactive visulisations produced to support news stories is that whilst they’re all very nice and shiny, they don’t actually work that well to communicate anything of substance at all (for example, see my comments on Michael Blastland’s talk at the OU Stats conference). Maybe a few well crafted reactive documents might start to address this balance, and engage at least part of the audience in a contextualised consideration of data (or model) based story…?

A third area I’d like to spend some time mulling over (maybe even in the context of Public Platforms…?) is policy development and public consultation, scoping out what may be possible and plausible if consultation documents were to propose particular models and then allow the engaged reader to explore the various parameter regimes associated with those models?

Hmmm…. maybe I need to start working on my resolutions for next year…?!

PS just in passing, as well as treating documents as living things, it can also be instructive to think of them as databases. This is a trivial mapping if the document has a regular tabluar structure, such as a spreadsheet sheet, or is otherwise formally structured (as for example in the case of an XML document, which typically describes some sort of hierarchical (document as data) structure) ,or even if it contains conventions in either style or content (for example, section headings being phrased in the form “Section NN: blah blah blah”; “Section NN: ” is a convention that can be used to identify the semantics of the text “blah blah blah” (in this case, as the text representing the header of section NN).

Written by Tony Hirst

November 22, 2011 at 4:39 pm

Finding Common Terms around a Twitter Hashtag

with 2 comments

@aendrew sent me a link to a StackExchange question he’s just raised, in a tweet asking: “Anyone know how to find what terms surround a Twitter trend/hashtag?”

I’ve dabbled in this area before, though not addressing this question exactly, using Yahoo Pipes to find what hashtags are being used around a particular search term (Searching for Twitter Hashtags and Finding Hashtag Communities) or by members of a particular list (What’s Happening Now: Hashtags on Twitter Lists; that post also links to a pipe that identifies names of people tweeting around a particular search term.).

So what would we need a pipe to do that finds terms surrounding a twitter hashtag?

Firstly, we need to search on the tag to pull back a list of tweets containing that tag. Then we need to split the tweets into atomic elements (i.e. separate words). At this point, it might be useful to count how many times each one occurs, and display the most popular. We might also need to generate a “stop list” containing common words we aren’t really interested in (for example, the or and.

So here’s a quick hack at a pipe that does just that (Popular words round a hashtag).

For a start, I’m going to construct a string tokeniser that just searches for 100 tweets containing a particular search term, and then splits each tweet up in separate words, where words are things that are separated by white space. The pipe output is just a list of all the words from all the tweets that the search returned:

Twitter string tokeniser

You might notice the pipe also allows us to choose which page of results we want…

We can now use the helper pipe in another pipe. Firstly, let’s grab the words from a search that returns 200 tweets on the same search term. The helper pipe is called twice, once for the first page of results, once for the second page of results. The wordlists from each search query are then merged by the union block. The Rename block relabels the .content attribute as the .title attribute of each feed item.

Grab 200 tweets and check we have set the title element

The next thing we’re going to do is identify and count the unique words in the combined wordlist using the Unique block, and then sort the list accord to the number of times each word occurs.

Preliminary parsing of a wordlist

The above pipe fragment also filters the wordlist so that only words containing alphabetic characters are allowed through, as well as words with four or more characters. (The regular expression .{4,} reads: allow any string of four or more ({4,}) characters of any type (.). An expression .{5,7} would say – allow words through with length 5 to 7 characters.)

I’ve also added a short routine that implements a stop list. The regular expression pattern (?i)\b(word1|word2|word3)\b says: ignoring case ((?i)),try to match any of the words word1, word2, word3. (\b denotes word boundary.) Note that in the filter below, some of the words in my stop list are redundant (the ones with three or fewer characters. Remember, we have already filtered the word list to show only words of length four or more characters.)

Stop list

I also added a user input that allows additional stop terms to be added (they should be pipe (|) separated, with no spaces between them). You can find the pipe here.

Written by Tony Hirst

November 22, 2011 at 1:47 pm

Name-based Robots.txt for Wifi Access Points?

leave a comment »

Google just announced via a blog post – Greater choice for wireless access point owners – that owners of wifi acccess points who did not want Google to add the address and location of the access point to the Google Location Server that they need to rename the access point by adding _nomap to the end of the access point name or SSID (e.g. My Network_nomap) [UPDATE: note that this means it's an opt-out model rather than a _mapme opt-in strategy (h/t @patparslow for that...)]

This is a bit like the declarative approach webpublishers take to identify pages they don’t want search robots indexing, by including the names/paths of “please don’t” content in a robots.txt file. The Google assumption seems to be that if anything is visible in pretty much any way, they can index it unless you explicitly tell them not to.

All well and good, but what about the access points that Google has already added to the index, even if their publishers rather they didn’t? Will these be automagically removed next time a lookup is made?

Maybe the removal protocol will work like this: Android phone or browser with location service enabled* detects local access point name, tells Google Location Service, Google notes that the name is now ‘_nomap’, deletes it from the index, returns ‘not found’?

*You do know your browser often knows where you are from local wifi points, don’t you, even if your laptop doesn’t have GPS or a 3G card? It tends to go by the name location aware browsing and involves your browser sending identifiers such as your IP address, the names of local wifi access points, and a browser ID to a Google service that has a big database of identifiers and geo-location data for where it thinks each identifier is located. (Hmmm..interesting… I hadn’t realised that Firefox uses the Google Location Service till just now..?)

I don’t think you even need to be logged on to a network for it’s name to be phoned back to the location service? As the Mozilla FAQ puts it: “By default, Firefox uses Google Location Services to determine your location by sending … information about the nearby wireless access points…” (note nearby wireless access points).

PS by the by, here’s the strategy used by Android phones for detecting location.

Obtaining locations in android http://developer.android.com/guide/topics/location/obtaining-user-location.html

Is there a similar diagram for how browsers approach location detection anywhere?

Written by Tony Hirst

November 15, 2011 at 2:14 pm

Just Back From #DevXS

with 2 comments

Just back home from #devXS, the first DevCSI student developer event held at the University of Lincoln, in which a shed load (literally!) of student developers gave up their weekend for a 24 hour code bash (and 2 minute Rememberance Sunday silence) on projects of their own design. Well done to all the teams for their hacks and apps – I’m guessing a list of prize winners will appear on the DevXS blog, but you can find a full list on the wiki

It was really encouraging to see several teams hacking out apps and services around course code data – it’s just a shame that UCAS Terms and Conditions make it so hard for folk to find an open way in to getting hold of a national catalogue of course codes. In the same way that restrictions on UK postcode data held back grass roots development for way too long until recently, access to course code data – which UCAS could help out with – is really holding back the development of grass roots apps around course choice and selection…if crappy license conditions are respected of course… (is there an “in the public interest” defence that could be mounted against respecting such terms and conditions?!)

Here’s the overall winning app, from St Andrews’ Another Team: UUG: the Unofficial University Guide

Many congrats and thanks to the local organisers Alex Bilbie, Nick Jackson, Joss Winn, Jamie Mahoney and any others I may have omitted (apols…) as well as UKOLN’s DevCSI co-ordinator Mahendra Mahey. Great stuff, chaps:-)

PS FWIW, here are my slides from the presentation I gave at the event, as well as a hack I did along the way

Written by Tony Hirst

November 13, 2011 at 10:26 pm

Posted in Presentation

Tagged with

A Quick Lookup Service for UK University Bursary & Scholarship Pages

with one comment

Here’s a quick recipe for grabbing a set of links from an alphabetised set of lookup pages and then providing a way of looking them up… The use case is to lookup URLs of pages on the websites of colleges and universities offering financial support for students as part of the UK National Scholarship Programme, as described on the DirectGov website:

National Scholarship programme

Index pages have URLs of the form:
http://www.direct.gov.uk/en/EducationAndLearning/UniversityAndHigherEducation/StudentFinance/StudentfinanceA-Z/index.htm?indexChar=D

<div class="subContent">
			<h3>A</h3>
						<div class="subContent">
						<h4></h4>
					<ul class="subLinks">
						<li><a href="http://www.anglia.ac.uk/nsp"   target="_blank">Anglia Ruskin University<span class='tooltip' title='Opens new window'> <span>Opens new window</span></span></a></li>
					</ul>
				</div>
				<div class="subContent">
						<h4></h4>
					<ul class="subLinks">
						<li><a href="http://www.aucb.ac.uk/international/feesandfinance/financialhelp.aspx"   target="_blank">Arts University College at Bournemouth<span class='tooltip' title='Opens new window'> <span>Opens new window</span></span></a></li>
					</ul>
				</div>
				<div class="subContent">
						<h4></h4>
					<ul class="subLinks">
						<li><a href="http://www1.aston.ac.uk/study/undergraduate/student-finance/tuition-fees/2012-entry/ "   target="_blank">Aston University Birmingham<span class='tooltip' title='Opens new window'> <span>Opens new window</span></span></a></li>
					</ul>
				</div>
		
	</div>

I’ve popped a quick scraper onto Scraperwiki (University Bursaries / Scholarship / Bursary Pages) that trawls the the index pages A-Z, grabs the names of the institutions and the URLs they link to and pops them into a database.

import scraperwiki
import string,lxml.html

# A function I usually bring in with lxml that strips tags and just give you text contained in an XML substree
## via http://stackoverflow.com/questions/5757201/help-or-advice-me-get-started-with-lxml/5899005#5899005
def flatten(el):           
    result = [ (el.text or "") ]
    for sel in el:
        result.append(flatten(sel))
        result.append(sel.tail or "")
    return "".join(result)
#As it happens, we're not actually going to use this function in this scraper, so we could remove it from the code...

# We want to poll through page URLs indexed by an uppercase alphachar
allTheLetters = string.uppercase

for letter in allTheLetters:
    #Generate the URL
    url="http://www.direct.gov.uk/en/EducationAndLearning/UniversityAndHigherEducation/StudentFinance/StudentfinanceA-Z/index.htm?indexChar="+letter
    print letter
    #Grab the HTML page from the URL and generate an XML object from it
    page=lxml.html.fromstring(scraperwiki.scrape(url))
    #There are probably more efficient ways of doing this scrape...
    for element in page.findall('.//div'):
        if element.find('h3')!=None and element.find('h3').text==letter:
            for uni in element.findall('.//li/a'):
                print uni.text,uni.get('href')
                scraperwiki.sqlite.save(unique_keys=["href"], data={"href":uni.get('href'), "uni":uni.text})

Running this gives a database containing the names of the institutions that signed up to the National Scholarship Programmea and the information that have about scholarships and bursaries availabale in that context.

The Scraperwiki API allows you to run queries on this database and get the results back as JSON, HTML, CSV or RSS: University Bursaries API. So for example, we can search for bursary pages on Liverpool colleges and universities websites:

Scraperwiki API

We can also generate a view over the data on Scraperwiki… (this script shows how to interrogate the Scraperwiki database from within a webpage.

Finally, if we take the URLs from the bursary pages and pop them into a Google custom search engine, we can now search over just those pages… UK HE Financial Support (National Scholarship Programme) Search Engine. (Note that this is a bit ropey at them moment.) If you own the CSE, it’s easy enough to grab embed codes that allow you to pop search and results controls for the CSE into your own webpage.

(On the to do list is generate a view over the data that defines a Google Custom Search Engine Annotations file that can be used to describe the sites/pages searched over by the CSE.)

Written by Tony Hirst

November 13, 2011 at 12:18 pm

Posted in Tinkering

Tagged with ,

Generating Mind Maps from OU/OpenLearn Structured Authoring XML Documents

leave a comment »

One of the really useful things about publishing documents in a structured way is that we can treat the document as a database, or generate an outline view of it automatically.

Whilst looking through the OU Structured Authoring XML docs looking for things I could reliably extract from them in order to configure a course custom search engine (Notes on Custom Course Search Engines Derived from OU Structured Authoring Documents), I put together a quick script to generate a course mind map based around the course structure.

It struck me that as structured document/XML views of OpenLearn material is available, I could do the same for OpenLearn docs. So here’s an example. If you visit the OpenLearn site, you should be able to find several modules derived from the old OU course T175. Going to the first page proper for each of the derived modules (URLs have the form http://openlearn.open.ac.uk/mod/oucontent/view.php?id=398868&direct=1), it is possible to grab a copy of the source XML document for the unit by rewriting the URL to include the setting&content=1: for example, http://openlearn.open.ac.uk/mod/oucontent/view.php?id=398868&content=1

OpenLearn source XML

Downloading the XML files for each of the T175 derived modules on OpenLearn into a single folder, I put together a quick script to mine the structure of the document and pull out the learning objectives for each unit, as well as the headings of each section and subsection. The resulting mindmap provides an outline of the course as a whole, something that can be used to provide a macroscopic view over the whole course, as well as providing a document that could be made available to people following the unit as a resource they could use to organise their notes or annotations around the unit.

T175 on Openlearn mindmap

Download a copy of the T175 on OpenLearn Outline Freemind/.mm mindmap

If we could find a way of getting the OpenLearn page URLs for each section, we could add them in as links within the mindmap, thus allowing it to be used as a navigation surface. (See also MindMap Navigation for Online Courses in this regard.)

Here’s a copy of the Python script I ran over the folder to generate the Freemind mindmap definition file (filetype .mm) based on the section and subsection elements used to structure the document.

# DEPENDENCIES
## We're going to load files in from a course related directory
import os
## Quick hack approach - use lxml parser to parse SA XML files
from lxml import etree
# We may find it handy to generate timestamps...
import time


# CONFIGURATION

## The directory the course XML files are in (separate directory for each course for now) 
SA_XMLfiledir='data'
## We can get copies of the XML versions of Structured Authoring documents
## that are rendered in the VLE by adding &content=1 to the end of the URL
## [via Colin Chambers]
## eg http://learn.open.ac.uk/mod/oucontent/view.php?id=526433&content=1


# UTILITIES

#lxml flatten routine - grab text from across subelements
#via http://stackoverflow.com/questions/5757201/help-or-advice-me-get-started-with-lxml/5899005#5899005
def flatten(el):           
    result = [ (el.text or "") ]
    for sel in el:
        result.append(flatten(sel))
        result.append(sel.tail or "")
    return "".join(result)

#Quick and dirty handler for saving XML trees as files
def xmlFileSave(fn,xml):
	# Output
	txt = etree.tostring(xml, pretty_print=True)
	#print txt
	fout=open(fn,'wb+')
	#fout.write('<?xml version="1.0" encoding="UTF-8" ?>\n')
	fout.write(txt)
	fout.close()


#GENERATE A FREEMIND MINDMAP FROM A SINGLE T151 SA DOCUMENT
## The structure of the T151 course lends itself to a mindmap/tree style visualisation
## Essentially what we are doing here is recreating an outline view of the course that was originally used in the course design phase
def freemindRoot(page):
	tree = etree.parse('/'.join([SA_XMLfiledir,page]))
	courseRoot = tree.getroot()
	mm=etree.Element("map")
	mm.set("version", "0.9.0")
	root=etree.SubElement(mm,"node")
	root.set("CREATED",str(int(time.time())))
	root.set("STYLE","fork")
	#We probably need to bear in mind escaping the text strings?
	#courseRoot: The course title is not represented consistently in the T151 SA docs, so we need to flatten it
	title=flatten(courseRoot.find('CourseTitle'))
	root.set("TEXT",title)
	
	## Grab a listing of the SA files in the target directory
	listing = os.listdir(SA_XMLfiledir)

	#For each SA doc, we need to handle it separately
	for page in listing:
		print 'Page',page
		#Week 0 and Week 10 are special cases and don't follow the standard teaching week layout
		if page!='week0.xml' and page!='week10.xml':
			tree = etree.parse('/'.join([SA_XMLfiledir,page]))
			courseRoot = tree.getroot()
			parsePage(courseRoot,root)
	return mm

def learningOutcomes(courseRoot,root):
	mmlos=etree.SubElement(root,"node")
	mmlos.set("TEXT","Learning Outcomes")
	mmlos.set("FOLDED","true")
	
	los=courseRoot.findall('.//FrontMatter/LearningOutcomes/LearningOutcome')
	for lo in los:
		mmsession=etree.SubElement(mmlos,"node")
		mmsession.set("TEXT",flatten(lo))

def parsePage(courseRoot,root):
	unitTitle=courseRoot.find('.//Unit/UnitTitle')

	mmweek=etree.SubElement(root,"node")
	mmweek.set("TEXT",flatten(unitTitle))
	mmweek.set("FOLDED","true")

	learningOutcomes(courseRoot,mmweek)
	
	sessions=courseRoot.findall('.//Unit/Session')
	for session in sessions:
		title=flatten(session.find('.//Title'))
		mmsession=etree.SubElement(mmweek,"node")
		mmsession.set("TEXT",title)
		mmsession.set("FOLDED","true")
		subsessions=session.findall('.//Section')
		for subsession in subsessions:
			heading=subsession.find('.//Title')
			if heading !=None:
				title=flatten(heading)
				mmsubsession=etree.SubElement(mmsession,"node")
				mmsubsession.set("TEXT",title)
				mmsubsession.set("FOLDED","true")


mm=freemindRoot('t175_1.xml')
print etree.tostring(mm, pretty_print=True)
xmlFileSave('reports/test_t175_full.mm',mm)

If you try to run it over other OpenLearn materials, you may need to tweak the parser slightly. For example, some documents may make use of InnerSection elements, or Header rather than Title elements.

If youdo try using the above script to generate mindmaps/outlines of other OpenLearn courses, please let me know how you got on in the comments below (eg whether you needed to tweak the script, or whether you found other structural elements that could be pulled into the mindmap.)

Written by Tony Hirst

November 10, 2011 at 1:40 pm

Posted in Open Content, OU2.0, Tinkering

Tagged with ,

Getting Started With Twitter Analysis in R

with 8 comments

Earlier today, I saw a post vis the aggregating R-Bloggers service a post on Using Text Mining to Find Out What @RDataMining Tweets are About. The post provides a walktrhough of how to grab tweets into an R session using the twitteR library, and then do some text mining on it.

I’ve been meaning to have a look at pulling Twitter bits into R for some time, so I couldn’t but have a quick play…

Starting from @RDataMiner’s lead, here’s what I did… (Notes: I use R in an R-Studio context. If you follow through the example and a library appears to be missing, from the Packages tab search for the missing library and import it, then try to reload the library in the script. The # denotes a commented out line.)

require(twitteR)
#The original example used the twitteR library to pull in a user stream
#rdmTweets <- userTimeline("psychemedia", n=100)
#Instead, I'm going to pull in a search around a hashtag.
rdmTweets <- searchTwitter('#mozfest', n=500)
# Note that the Twitter search API only goes back 1500 tweets (I think?)

#Create a dataframe based around the results
df <- do.call("rbind", lapply(rdmTweets, as.data.frame))
#Here are the columns
names(df)
#And some example content
head(df,3)

So what can we do out of the can? One thing is look to see who was tweeting most in the sample we collected:

counts=table(df$screenName)
barplot(counts)

# Let's do something hacky:
# Limit the data set to show only folk who tweeted twice or more in the sample
cc=subset(counts,counts>1)
barplot(cc,las=2,cex.names =0.3)

Now let’s have a go at parsing some tweets, pulling out the names of folk who have been retweeted or who have had a tweet sent to them:

#Whilst tinkering, I came across some errors that seemed
# to be caused by unusual character sets
#Here's a hacky defence that seemed to work...
df$text=sapply(df$text,function(row) iconv(row,to='UTF-8'))

#A helper function to remove @ symbols from user names...
trim <- function (x) sub('@','',x)

#A couple of tweet parsing functions that add columns to the dataframe
#We'll be needing this, I think?
library(stringr)
#Pull out who a message is to
df$to=sapply(df$text,function(tweet) str_extract(tweet,"^(@[[:alnum:]_]*)"))
df$to=sapply(df$to,function(name) trim(name))

#And here's a way of grabbing who's been RT'd
df$rt=sapply(df$text,function(tweet) trim(str_match(tweet,"^RT (@[[:alnum:]_]*)")[2]))

So for example, now we can plot a chart showing how often a particular person was RT’d in our sample. Let’s use ggplot2 this time…

require(ggplot2)
ggplot()+geom_bar(aes(x=na.omit(df$rt)))+opts(axis.text.x=theme_text(angle=-90,size=6))+xlab(NULL)

Okay – enough for now… if you’re tempted to have a play yourself, please post any other avenues you explored with in a comment, or in your own post with a link in my comments;-)

Written by Tony Hirst

November 9, 2011 at 2:47 pm

Follow

Get every new post delivered to your Inbox.

Join 126 other followers