Amy Guy

Raw Blog

Tuesday, April 29, 2014

On the importance of remoteStorage module reuse

Well, the point of Unhosted modules and being explicit about your data schema in modules is so that other developers can reuse them, to make it possible for users to switch between frontend apps that consume the same kinds of data.

Well, duh*.

But there seem to be loads of people making the same kinds of apps over remoteStorage (mostly todo apps or notetaking kind of things) and making their own modules every time!

If one module doesn't offer everything a dev needs for their new app, they should hook in anyway and extend it with their own module on top. That should be pretty straightforward.

So I love LiteWrite, but for notetaking maybe I need a few more organisational facilities. McNotes looked awesome and I was poised to start using it. Then I saw Laverna offers remoteStorage support and that is pretty much a straight up port of Evernote (but ten times as sexy), with tags and notebooks and everything!

When I switched from Evernote to something to something to Springpad (the ones in between didn't do the job, and I've since forgotten what they were) I had all kinds of mess importing my Evernote data, and a lot of it was done manually due to limitations of the various importers. If I'd actually started storing anything useful in LiteWrite, and wanted to move to McNotes and then to Laverna I would have gone through the exact same process... which is a horrible thought, because that's one of the problems remoteStorage is supposed to solve.

So, please, if you're making an app over remoteStorage, look at the other modules that exist first, and use them. And if you're making a new module, please publish it! Otherwise we're missing a butt-ton of opportunities for giving users choices about their UIs, and for mashing things up in amazing ways.

(On that note, I'm keeping a list of Unhosted mashup ideas).

* Although this is kind of obvious, I explicitly came to this realisation after it occurred to me, when trying to work out how to make schema definitions conform to proper JSON-LD, that you go to all the trouble of defining your data schema in your module, but then there's nothing to stop you just storing any old object. You can validate an object against a schema, but there's nothing to do this by default. So I thought why then do I need to bother with this JSON-LD schema faff if I can just store prefixes at object creation time? Then I remembered other people, and reuse and stuff. It took a surprisingly long time (like an hour of frowning) to get to that though. Especially surprising given that all I've been thinking about this evening is Linked Data. Clearly all this JavaScript is obscuring coherent thought.

Unhosted App Ideas

If people release their models and data schema for remoteStorage apps, we can mash them up with much ease! I'm maintaining a list here of ideas that I may or may not get around to implementing:

  • Notetaking app + bookmarking app = WebClipper functionality and/or annotation of webpages
  • Todo app + calendar app = duh.

Since most of the early Unhosted apps are life-organise-y ones, can we just have a dashboard that combines everything? Can we call it SORT YOUR LIFE OUT?

Monday, April 21, 2014

Ontology of the Feels

I had an idea for a tiny wee project to do with quantified self. More on that later.

Because I'm trying to use linked data for everything, for reasons beyond the scope of this post, the first thing I did was sketch out the data I need to store in a graph structure. I need to record emotions, so I did a quick search for ontologies that represent emotions, figuring psychologists and the like must have been at this for years already.

Sure enough I found a few, but the most convincing one, the HUMAINE Emotion Annotation & Representation Language (EARL) is in XML rather than OWL.

Note: There's apparently a lot of disagreement about terms and stuff in this area. Not something I'm invested in, so I'm just going to roll with this XML.

Yay! Time to convert a well structured and useful dataset into RDF. Always a Good Thing.

EARL
EARL comes as many files, and goes beyond what I need. But it's not huge, and with a little effort (and looking some stuff up on Wikipedia) I think I can understand what's going on enough to convert the lot.

There are:

  • Categories (names of emotions)
  • Dimensions (ways of describing intensity, I think)
  • Modality types (the means through which the emotion was expressed, eg. face)
  • Regulation attributes (response to an emotion)
  • Appraisal attributes (a list of other descriptive terms; emotional metadata, if you will)
  • Emotion times (start and end)

Emotional occurrences can have all of the above as properties, as well as probability and intensity. Complex emotional occurrences have times, and contain a minimum of two emotional occurrences with the above properties.

The terms are all taken from various different psychological experiments or schools of thought. There are alternative versions of some of these things from something called AIBO. Arbitrarily I'm ignoring everything prefixed AIBO for now.

Converting
I'm going through the files and writing everything relevant out, then drawing it as a graph.

First juncture: do I use all the attributes (like the list of 55 emotions) as properties (as they are demonstrated in the original XML) or use classes? Properties seems messy, and feels less extensible, even though technically I suppose it's not.

Maybe they should be properties. Except the categories, they all (or at least most) have corresponding DBPedia entries that it would be stupid not to take advantage of. But the dimensions, regulation and appraisal might be better suited to being properties, otherwise I'm having pointless identifiers or blank nodes everywhere. And nobody wants that.

I adjusted the Samples thing a bit, mostly to simplify it, and I may have got it wrong, but I think it makes sense.

Then I typed it all into WebProtege. As a result, I think quite a few things are overspecified. What do you think? Check it out: http://vocab.amy.so/earl.

Tuesday, April 01, 2014

Amsterdam

I'm visiting the Information Access research group at the Centrum Wiskunde & Informatica in Amsterdam for a week.

I walked around a bit, and discovered that a lot of roads look like pavements, or pavements don't stop being pavements even when they cross over a junction a car can turn down.

Also I keep looking the wrong way when crossing roads and cycle paths.

Fortunately all of the cars and bikes I've stepped out in front of so far have been going very slowly.

Also I don't know if there's a heatwave or if I'd just acclimatised to Scotland more than I thought. Everyone else is going around wearing coats, but I'm sweltering.

I've been here before in 2008, but only have vague memories of tourist attractions and the city hadn't left a lasting impression on me. Hopefully I can pay more attention this time.

Expect more posts about my research-related adventures soon.

Tuesday, February 25, 2014

Blogging with Linked Data

An update; sort an explanation of why I haven't posted anything recently.

I really want more control over my blog data.

I think Linked Data is great and the only way to make it more useful is to use it more.

I'm sick of Blogger's JavaScript heavy wysiwyg editor that doesn't work properly on low-bandwidth connections, or on my Kindle in emergencies.

I want to author blog posts in markdown, add whatever metadata (like tags) I need, and publish them via whatever means I have to hand. From a browser, from a text editor and command line, from an email, from a tweet?

So I'm working on Slog'd: Semantic Blog from Markdown.

I already wrote a wee Python script to convert my existing Blogger posts to linked data: Blogger2LD. I'm making a web interface for this so you can do yours... and I'll do it for Twitter, too. Then who knows what else will follow.

I'm still twiddling with Slog'd itself - which I'm writing in PHP and storing triples in a MySQL database using the ARC2 library, because I want anyone with any bog-standard shared hosting and no understanding of linked data to be able to use this. You can watch progress on Bitbucket.

I've been blogging every detail as I go along. These are in the posts directory in the Slog'd repo, rather than on here.

Tuesday, February 18, 2014

Paper accepted to WWW

My first paper has been accepted to the SOCM14 workshop at WWW.

That means I get to go to Seoul, South Korea, in April!

I'll post a pre-print at some point.

Wednesday, November 20, 2013

OKFN Glasgow #2

I ventured to Glasgow for the second Open Knowledge Foundation meetup on Monday 18th. It was well attended, and there were six short talks:

Lorna Campbell from Cetis talked about Open Scotland. I understood this to be a collaboration between Cetis, the SQA, JISC and the ALT Scotland, to do with the opening up of education, and influencing policy and practicein this area. Here's a blog.

Grianne Hamilton from JISC talked about Mozilla's Open Badges. You can use them to reward learning, skills and achievements in all sorts of areas, and any organisaiton can create and issue badge packs to people who have earned them. Recievers can then show them off anywhere they can put HTML.

Graeme Arnott talked about a collaboration between Glasgow Womens' Library and Wikimedia, which resulted in the Scottish Women on Wikipedia event. This was a group of Scottish women getting together to edit Wikipedia articles about Scottish Women, and there was very positive feedback. They have more events planned. Graeme also reminded us about Wikimania, which is taking place next August in London.

Jennifer Jones told us about the Digital Common Wealth project. She pointed out that with media-saturated global events like the Olympics, the official story is already decided before the event even starts. An alternative to relying on what is broadcast by the mainstream media is to turn the camera on the crowd, and get the 'real' version of what is going on. The Digital Common Wealth project will encourage citizen journalists to work together to craft the story of the Glasgow Commonwealth Games from their perspective. Jennifer also raised the point that although free tools like YouTube, AudioBoo and Twitter are great for spreading stories, the data is still held by third parties - what happens if they disappear? How should initiatives like this safely archive their stories, and keep them in context?

Pippa Gardner talked about Glasgow's Future Cities project, for which they have £24 million to develop. It's about "people and data", but she was here to talk about data. There's the Data Innovation Engagement (which apparently needs a better acronym) and Glasgow's data portal which has already launched. Not all of the data on their is 'properly' open, but it's more open than it was before. There's a maps portal coming soon. Follow @openglasgow to keep up to date. Someone asked how they can avoid inadvertantly widening the digital divide by making all this data available - as it will only improve things for people who already have understanding and access. Pippa said there's a dedicate group in the Council working on widening digital participation, so they're involved.

Duncan Bain, and MPhil student at the University of Edinburgh, talked about Open Architecture. He says it's hard to define 'knowledge' and 'data' in architecture; architects create drawings/representations, not buildings. There are efforts towards opening certain aspects of this, like wikihouse.cc and the Open Architecture Network, but the culture of the architecture world, and where the money is, seems to be preventing things from going in the same direction as software development any time soon.

Here are livestreams of the talks by Jennifer Jones: one and two and a twitter timeline by Sheila Macneill.

Thursday, November 14, 2013

EdinburghApps

Prewired 3

Our third Prewired event went smoothly, with 20 young people (about 4 new) and 7 or so parents attending, plus 8 mentors. So lower signups than usual (a few cancellations due to school commitments), but we decided not to do a big publicity push and see how it ran with a smaller group. I didn't notice much difference, since they organise themselves into smaller groups anyway to work on different things. I think next time we'll try to reach our capacity of 40.

We had a big group working on a variety of Python projects (games, basics, algorithms, I'm not sure what else..), a small group doing front-end web, and quite a few doing amazing things with Scratch.

Every week I discover new things these super-talented young people are doing with their time, and it won't be long before many of them are spending a lot of time mentoring their peers as well as working on their own projects.

Nantas came by to talk about what he does with the University's Robotics lab, including the challenges of making humanoid robots play football, and the state of the art, two-million-pounds, full sized humanoid robot that is moving to Edinburgh in the near future. Definitely stuff to get young people excited about learning to code.

We've been trying to encourage them to code between Prewired sessions, too, and about half of them said they had. I hope by the next time all of them have, and I'm really excited to see what they're capable of making in a few months time!

But...

Some of the young people attending are disadvantaged by not being able to bring their own laptop, or having only really old laptops which can't support modern browsers and therefore have trouble even executing the JavaScript their writing (true story).

We'd love to be able to pay for a set of simple but up-to-date laptops that we could lend to the attendees who don't have their own during sessions.  This at least will put them on a level playing field with the others during the sessions, and I suspect that many of them have adequate desktop machines or family laptops at home.

Prewired runs on a budget of volunteer blood, sweat and tears, and zero pounds.  We're lucky enough to be able to use space in the University Informatics building for free, and there are no shortage of keen mentors and helpers willing to chip in their time (and in some cases cash for snacks).

So if you work for a company who might be able to support the purchase of resources for our young coders, or know someone who does, then please get in touch!

Sunday, November 03, 2013

Nanowrimo: It begins

I've committed to Nanowrimo for the seventh year.  I almost didn't.  It's distressing and frustrating and sucks at my self-confidence like nothing else.  It makes me feel like a failure in a way that nothing else can.

But it makes me write.

If I don't commit to it, I don't write a lot of fiction.  Maybe a burst every six months.

But every November for the last few years, I've written literally thousands of words.  I've brought vague, lingering ideas to life; I've fleshed out characters; I've explored worlds.

Every November for the last few years, I've bashed out incoherent paragraphs figuring I'll fit them in properly later. I've exhausted ideas that I now never want to hear of again.  I've killed my love for characters, and tired of worlds.

I've doubted my writing abilities, my imagination, my creativity, my storytelling.  I've convinced myself that I'm incapable of finishing anything.

The one year I hit 50,000 words? (50,299 to be precise).  I was maybe a chapter away from finishing the actual story.  The third quarter needed totally replacing and didn't really fit with the main story.  Four or five years later, I still haven't written that final chapter, even though I know what the outcomes are to be.  I haven't even typed it all up, let alone re-written part three.  I didn't fall out of love with the characters or the world, and I think about it a lot, and it breaks my heart.

Every November I've made a few new friends, and reconnected with old ones.  Bonding with someone over Nanowrimo is an experience that stands alone.  I've had one more conversation-starter than usual.  I've discovered some new cafes and new writing software.  My productivity has increased as a result of using The Work I'm Supposed To Be Doing as a distraction from writing.

Every year I tell myself I'm doing it to make myself write.  The 50,000 is irrelevant.  I just need to write some words.  More than none.  Then I'm a winner.  But not hitting 1,667 per day still feels like a gut-wrenching failure.  Finding out someone else is further on than me brings me down a notch.  Even with my inner-editor firmly silenced (she crawls into the cupboard of her own accord on the 1st of November these days) the inability to just sit down and churn out words right off the bat is crushing.

But it does make me write.

Writing fiction is my first love.  What I wanted to be when I grew up was "author".  It was a complicated word I knew when I was quite little.  Along with "aspidistra", but that's another story.

Imagine if I'd gone on to study it?  If I was writing because someone told me to write?  If I had to write to move forward in life?  I'd probably have burnt out well before now.

I guess it hurts so much because it means so much.

And that's why I have to get over myself and just get on with it.  If... when?... if I succeed, where success is writing a story I'm happy with, regardless of length, the boost will be indescribable.  I'll get a new lease on life.  I'll be sure I can do anything.

I'm going to the Edinburgh NanoBeans launch party tomorrow.  It's at 2pm in Forest Cafe.  I'm going to add loads of new people (People Who Understand) on various social networks to increase the chances of being asked how it's going.  Mostly I'll just have to shrug and say slowly, and feel guilty about that movie I watched or that extra batch of brownies I baked.  But maybe... just maybe there will be a time this year when I can say "it's going great! I'm ahead of target."

And just for some encouragement, here's are some pictures from 2008:




Thanks Nano.  I need you.  Never leave.

Friday, November 01, 2013

Sky stole £50 from me

Here is my tale of trying to get it back.

£50 isn't a large amount of money to a massive organisation like Sky. But for me, it's two to three weeks food, or a train ticket to visit my mother, or about half of my Christmas shopping (yeah alright, I'm not very extravagant with that sort of thing).
Following is an account of how a relatively small mistake on their part, which I thought was resolved well and quickly, then led to an agonising four month back-and-forth of:
a) Lies

b) Broken promises

c) Incompetencies

d) All of the above.

May: Attempted cancellation

I messaged through Help & Support to cancel my broadband and phone line, because I was going away a lot over the summer and it wasn't worth keeping it on. I was told it was sorted. I went to Australia for a month.

June: Apparently failed cancellation

I got back to Edinburgh and discovered I'd been billed. I turned on my router to see if I'd managed to mess up the cancellation myself, and saw no sign of broadband. So the services were cancelled, just not the billing.

18 July: Good customer service

I finally got round to contacting Sky about my bill; by this point I'd been billed for July as well.
I spoke to a couple of people on the phone who made me feel like it was my fault, then finally to the lovely Rachael who dug deeper, discovered a human error had occurred as a result of (we think) the two ways of writing the first line my address: 2F2 35 or 35/5. As a result, I had two account numbers... one had the services I guess, and one had the bills. It was very confusing, but once we found the two numbers Rachael properly cancelled my mysterious second account, and very kindly applied £50 credit to make up for the overbilling. I was told to contact again in a few weeks to initiate the refund process.

16-26 Sept: Being blown off

I tried several times to contact customer services via help tickets to ask for the refund but got told (by a human, not an automated error message) there 'system error' with my bill, or something totally unhelpful (telling me something I didn't ask about) in response.

29 Sept: Actually, no

I'm told the £50 credit can only be spent on Sky services, not refunded directly to a bank account.

29 Sept: I damn well disagree!

I protested the unfairness of this, since I have moved somewhere with an existing broadband provider and actually probably wouldn't be going back to Sky after all this even if I had a choice...
I was told that actually they can refund it after all, and I should expect it in 48 hours. I pointed out that I'd heard this before. I was told not to worry, it'll be fine! I relaxed.
48 hours later... no refund.

Social media

Throughout September and October I started tweeting about the problems. I liked to do things like compare Sky's customer service to that of Virgin Mobile (who have done wonderful things for me from time to time). I hoped 'public shaming' might speed up a resolution. I got encouraging responses from the social media team at Sky, who actually seemed to care (which is their job, I suppose) but really I only ended up opening more tickets and talking to other advisors in the end.

21 Oct: A change of tune

Following another help ticket chase up, I'm told credit was incorrectly applied in the first place, and has been removed. I'm not exaggerating (just paraphrasing) when I say this was done "for reasons".

21 Oct: You what?!

Oh, hey guys, how about... no? I didn't just suffer through months of torment for you try to tell me the only competant member of staff I have spoken to was actually incompetant after all!
So I had a very long live chat to William (I think; I've named him, because he didn't leave a follow-up note like he was supposed to) who "carefully reviewed my account" and agreed with the verdict that the credit was incorrectly applied. I protested. He "carefully reviewed my account" some more, and then said he could see that an explicit reason was left for the application of the credit to my account in the first place... so it should have been there after all! Yay.
He said it would be refunded to my bank account in 78 hours. I told him I'd heard this before. He said not to worry, it'll definitely be fine this time.
Guess what.

31 October: It wasn't.

So far, no refund, no re-application of credit to my bill, and not even an update to my help ticket about the conversation. It was like it never happened. I stupidly didn't think to copy the chat as evidence, although I assume they have a transcript of it somewhere.

1 November: Hope

I DMed the social media team a bit, and scheduled a time to live chat with one of them, directly. While I waited, I typed out a timeline of everything that happened so far so I could paste it straight to them.
Three quarters of an hour later, I have hope once more following a chat with the most human member of Sky customer services I have spoken to so far.
He found actual reasons for things that had been done for "reasons". For example, my initial refund was never successfully issued because goodwill credit must be issued as a cheque, not a bank account transfer, so Finance just rejected it. A silly rule, but that's the way of it. (In my case the response was just to not issue it though, so Finance can't even follow their own silly rules).
I'm still not entirely sure why the credit was totally removed though, or why on my bill its removal shows up as a charge for Sky TV.
He treated me like a person by not making vague promises, or holding back particularities of how the organisation works. He told me he believed I should be receiving a refund based on what he knew so far, but he'd have to talk to his manager. He talked to his manager, who agreed. But he didn't then just tell me everything would be fine. He told me it still might get rejected by Finance (for "reasons", I presume).
What he is doing is speaking directly to someone in Finance to get a cheque sent out. He's manually changing my address to make sure the cheque goes to the right place, and he's going to get in touch with me again on Wednesday night to let me know what the progress has been.
I asked him what the next step is if Finance reject the refund request, and he implied threats of violence. (NOTE to Sky managers who might read this: I don't believe he meant he would really commit violence on the Finance team. He was doing his job well and using humour to relieve me whilst promising he would make an effor to follow up).
He also gave me permission to verbally abuse him if he doesn't get in touch on Wednesday night. I appreciate this sentiment, though it's unlikely I'll get into capslock territory with this guy any time soon. I would tweet a gentle a reminder of course.

6 November: The Wednesday follow-up

I got a Twitter DM with a link to a live chat... After just under an hour of waiting in a 'queue' for the live chat I had to leave, and DMed @SkyHelpTeam back to ask if they'd let me know when there was someone there, so I wasn't waisting my time refreshing a page.  They responded and sent the details to my MySky help tickets instead.  And the result?

A cheque is in the post!

Please allow 28 days for it to arrive.

I sure hope that's true.  And that it's coming to the right address.  I might send a letter to my old flat, just in case.  So I guess I'll update in 28 days whether or not it actually arrived.  I'm hopeful, but they've promised me that money is on its way in x amount of time before...

Conclusions

If your problems aren't fixed immediately, pester the social media team (@SkyHelpTeam).  Get everything in writing, record every conversation, keep track of dates, names of customer service people, and what you were promised.  Don't give up.  For every semi-competant and sympathetic customer service person, there are four or five lazy/useless/uncaring or possibly even malicious ones.  Just keep trying, and you'll get through eventually...

Recommendations for Sky

Following my unfortunately extensive experience with Sky help ticketing, I'd like to make a few suggestions for its improvement.
  1. Tickets should be marked as resolved by the customer. I have so many tickets that I don't consider to be resolved, sitting in my 'resolved' tickets column.
  2. I should be able to reply to tickets. I post a request, I get a response that is marked as resolved that I don't agree with. I then have to follow up by opening a new ticket, which inevitably goes to a different person, and I end up going around in circles.
  3. If I'm taking the time to type out messages to you, it probably means I don't want to talk to you on the phone. It doesn't matter why. Take the time to write messages back. (Related: telling me it's free to call customer service on a Sky line is really unhelpful when I'm trying to contact you about a recently cancelled Sky line. The fact that I never physically had a landline phone, line or no, is irrelevant here).

Thursday, October 31, 2013

Nanowrimo: "Why do I do this to myself?"

T'was the night before Nano.
A world swims in my head.
I'm way scared of planning.
I'm alone in my bed.

Don't know if I'll sleep.
Oh, what have I done?
Maybe I'll dream all fifty thousand tonight.
Don't panic; it'll be fun!

I'm not aiming to 'win' though.
Just aiming wto write.
Any words better than no words.
I'm sure my PhD will be alright.

Friday, October 18, 2013

The Launch of Prewired

Several weeks of debating and planning following Young Rewired State finally came to fruition on the 16th of October, with our first Prewired event.

Thirty eight kidsyoung people arrived between 9:30 and 10 on that Wednesday morning (it was half term week in Scotland, so we weren't pulling them out of school), grabbed some kindly donated Google swag, made name badges with stickers and felt-tipped pens, and sat down for two and a half hours of lightly guided learning.



They were between the ages of three and eighteen, although the three to six year olds were more there to be tagging along with older siblings or University staff. It's obviously impossible to divide attendees up by age and decide what to work with them on, as older definitely does not mean more experienced. We had decided on no lower bound for the age limit, and no lower bound for experience either, figuring that the only real requirement is enthusiasm about programming. There was a huge mix of interests and abilities, and we let them decide for themselves which topics would be worth listening to.

We also had about fifteen students, University staff or industry professionals along as mentors.

After a few minutes of welcomes, where most of the room were willing to introduce themselves and tell us what they wanted to learn ("Python", "Scratch" and "more about programming in general" were popular ones) we kicked off with three five minute introductions: to HTML and CSS (beginner), to HTML5 Geolocation (intermediate) and to Python's Natural Language Toolkit (advanced). They then had the chance to spend 40 minutes in a hands-on session for whichever of these they chose. The groups were very evenly spread, and despite a few hiccups with Python installations on Windows and Chrome not playing nice with geolocation (worked through thanks largely to the mentors) most people got some code up and running and appropriately hacked about with by the end.



We took a break for juice, crisps, chocolate and fruit, plus a bit of hardware tinkering. We'd borrowed a Nodecopter, but hadn't managed to get it charged in time so it wasn't in the air, but there were still plenty of people interested in looking at the code to control it. We also had a demo of a robot arm, which could be controlled by an Android app connected to a Python server, which had been written over the summer by one of our mentors.




Next up were three more lightning talks: introduction to Scratch (beginner), doing cool things with Redstone Circuits in Minecraft (intermediate) and introduction to PyGame (intermediate-advanced). The following hands-on session for Scratch was under-attended, possibly ousted by the allure of Minecraft, but the PyGame session had over a third of the group and made some great progress, which was awesome.

We finished a little late, but still managed to have time for a quick demo of a football playing robot from the nearby robotics lab, and a few attendees who took their time dragging themselves away from their screens.



I'm told that overall it was a success. I was concerned because I was generally called upon when something was going wrong, so my perspectively was weighted towards the negative. But it wasn't too chaotic, none of the
kidsattendees played up, and as far as we could tell they were doing something in some way productive at all times.

A lot of them had had little to no programming experience before that morning, and I really hope they were able to take away something positive and, most importantly, feel encouraged to try things out by themselves at home. Plenty, too, had enough experience that they were calling out to correct the speakers, and helping their peers to get things working. It's a huge challenge to find enough activities to engage so many different levels of experience and interest, and I don't think we did a bad job.

Our next Prewired event will be on the 30th of October, and we're running them bi-weekly on Wednesday evenings from now on. They will be henceforth less structured. Our primary aim is to help young people to realise that with programming (and related areas) they can create anything, express themselves, and change the world. We don't wish to enforce a curriculum, but encourage them to explore areas they are interested in, learn how to teach themselves and figure out how to make what they want, and most of all to persuade them not to be afraid to experiment - to hack - and to just keep trying if it doesn't work first time. To get them excited before they become jaded and before this society's stereotypes have a chance to impact on them.

You can find out more about Prewired at prewired.org, and join the mailing list there too.

Photos and feedback


Here are some of the photos from the day:



If you took some that you'd like us to add, then please send them to hello@prewired.org!

Similarly, send any feedback you have about the event to us that way, as well.

Resources


I'll update this post (as well as the website) with resources from the speakers and mentors as I get hold of them.

Beginning HTML and CSS:

HTML5 Geolocation:

Building a chatbot with Python's Natural Language Toolkit:

Intro to Scratch:

Minecraft Redstone Circuits:

Intro to PyGame:
  • Coming soon...

Monday, October 14, 2013

I touched my toes!

I touched my toes in yoga today.  It happened in the heat of power yoga, and I didn't think I'd be able to do it cold.  But I can!  That's my goal for the end of the year met then..

(This may sound trivial, but I have short hamstrings, and anything that involves bending in the middle and straightening my legs at the same time I find extremely difficult.  This the main thing I'm aiming to overcome with yoga).

Another first from today was binding without help in a spinal twist.  I managed to do this again at home an hour later, too.

And I've noticed that going into Chatarunga between sets of postures has become a reprieve, a chance to catch my breath and rest for a second.  Chatarunga is essentially holding yourself in the middle of a pressup, and when I started this class that was not something I could do, or ever though it might be a good idea to do; with the fast pace of the class, it was easy to collapse down onto my chest and skip over it.  But over the past few weeks as I've got used to how the class progresses I've slipped into doing the Chatarunga properly - or as properly as I can without having time to stop and think about it - and not having trouble at all.  I just tested that theory at home, and held myself in it for a good ten seconds.

I haven't seen such fast progress in any of the other yoga I've done.  This class is exciting me, and filling me with hope.

It's taking a toll on my wrists though.  By the end of the semester, they'll be strong :)

Monday, October 07, 2013

Yoga progress

I haven't blogged about yoga yet, but now seems like as good a time as any to start.

I started yoga-ing towards the end of 2012, with on-and-off classes at the Commonwealth Pool, then joined two beginner classes (with very different teaching styles) in January that ran for a semester as part of Edinburgh Council's Adult Education Programme.  I was hooked, and since the start of this semester I've been doing four classes a week:

Monday is Vinyasa 'power' yoga, one of the classes held by the University's Yoga Society.  It's fast, sweaty and intense, and I'd never have been able to handle it - or enjoy it - as a complete beginner.

Tuesday is a really relaxed beginner class running this term through the University Chaplaincy, mainly for relaxation. Great for the final hour of the 24 hour recovery from Monday's class.

Wednesday and Thursday are post-beginner Adult Education Programme classes, in Cameron House Centre and Nelson Hall respectively, with one of the teachers from my first semester of regular classes before the summer.

But what I really wanted to say, is that today I got myself into a full backbend unassisted (the last two weeks I've had help) and got substantially closer to reaching my toes with a straight back than I ever have before.

Go me.

(I definitely have shorter hamstrings than is normal, and my main aim with yoga is improving on that).

Monday, September 30, 2013

Angel of Death (J. Robert King)

I have a thing where I can't not finish reading something.  There's a very short list of books I never finished, and they all date from when I was about 8 to 13, and are because I was to young to follow them or too young to bear them, and just haven't got around to picking them up again.  They haunt my subconscious.

These days I feel I have to get at least half way to have given it enough of a chance, and once I'm past half way I feel I might as well finish it.

By the time I had wrenched my way through the first half of Angel of Death, I had started to come round to it.  By the end I guess I'd enjoyed it in some ways.

What I struggled with through the first half was the erratic jumping between persons and, worst of all, tenses.  You experience one character's perspective in first person present tense (something I dislike anyway), plus second person directed at another character.  And sometimes past tense.  Other perspectives were usually third person past tense.  I guess I got used to it, but if someone had told me before I started that it was written in this way, I probably wouldn't have picked it up.

I'm starting to figure out that I prefer character-driven narratives.  This is the pattern with things I've enjoyed lately, anyway.  The premise of Angel of Death was kinda interesting.  But the characters were utterly flat and often behaved unbelievably or in a very contrived manner, given how they'd been set up.  It was all tell and no show.  THIS IS A BAD EVENT IN HER TROUBLED PAST, OH BOY, NOW YOU KNOW HER MOTIVATIONS.  Totally wasn't enough.

The twists and turns throughout are, I suppose, well done.  The reader is convinced of the state of the world and, just as you're absolutely certain that that's the way it is, you're being convinced of the opposite.  This happens not quite enough to feel like an indecisive cop-out, but isn't far off.

There's gory horror, but it feels appropriate and not over-done.  Kudos.

If there were deeper levels of meaning or metaphor intended, which I suspect they might have been, I missed them.

Conclusion: meh, don't bother.  But if you've got nothing else to read, you could do worse.  If you want my copy you can have it, get in touch.

Sunday, August 11, 2013

Young Rewired State in Edinburgh #yrs2013

Young Rewired State is a week-long hack event for under 19s.  There are centres all over the UK, and the week finishes with a giant sleepover in the Custard Factory in Birmingham, presentations and prizes.

I was helping out with running the Edinburgh centre this year, between the 5th and 11th of August.  We had 15 young people taking part, and a few parents popping in and out as well.  Not to mention several fantastic mentors.

Every day we gathered in one of the University of Edinburgh Informatics computer labs.  On the first day we did some brainstorming, introduced the young people to Open Data, and they sorted themselves into teams.

We had a diverse range of projects by the end of the week.

The Weatherproof app was written in Scala with a Web frontend, and as well as telling you the weather forecast, gives you practical advice on what to wear and what to take with you.

Stuff Index was a Python Web app that lets people photograph and upload stuff they've left out on the street that they want to get rid of, so anyone browsing the site can opt to take it away if they fancy it.  Helping to keep stuff out of landfill, and without the dreaded social interactions that come with Freegle.

Tag is a game by a one-man team, with a Python game server and a JavaScript front end that lets you chase your friends around the real world, and automatically tags them when you're in range.

PokeGame is a real-world Pokemon simulator that lets you roam IRL and capture virtual Pokemon.

Great stuff!

On Friday we crammed into a coach along with the participants from Aberdeen, Dundee and Glasgow, and set off on a seven hour road trip to Birmingham for the finale.

The Edinburgh teams didn't win anything, but the presentations were fantastic and everyone had an amazing time.  The young people made new friends, learnt tons of new stuff, and hopefully remain enthused about coding.

Next year we're going to do more to walk through the creation process of some example apps to get them started off, and maybe do a better job of introducing Open Data and the possibilities it holds.

We're also thinking about starting a regular under 19s code club in Edinburgh - weekly or bi-weekly - so stay tuned for more info about that.  (And if you want to help or participate, get in touch!)

Sunday, August 04, 2013

Weeks in Review: Thesis proposal

29th July - 4th August

Discussed my ideas and work so far with Dave Robertson, my second supervisor, in two meetings this week.

Here's a summary of some of my thoughts.

5th - 11th August

I worked on my thesis proposal.  But it was also Young Rewired State week!

12th - 18th August

Finally (belatedly) handed in my thesis proposal.  (My review is scheduled for the 22nd August).

Friday, August 02, 2013

Vague thoughts about content creators and the Semantic Web

I had two meetings with Dave Robertson, my second supervisor, about what on earth I'm doing, and here is a vague summary of my thoughts afterwards.

I came to the realisation between meetings that I need to scrap the term Amateur Creative Digital Content, because amateur doesn't really apply by its true definition and creative is too subjective anyway.

Focus on content creators, not content (so previous point doesn't matter so much anyway; maybe just need to look at existing ways people are describing types of users to make it clear who I'm concentrating on).

In terms of emphasis of the thesis, I need to make a choice between taking a cognitive science/sociology perspective and a tecchie/engineering perspective (I choose tech because that's where I'm most comfortable, but the sociology side of things is still important).

(Therefore) I need to think concretely now about technology architecture.

Not to get too hung up on the Semantic Web; the technologies are a vehicle for testing theories, rather than an end in itself (though I still think facilitating a big linked data set of this sort of data is useful in the long run for research and practical applications, I didn't labour that point).

Social machines, and how Dave's process modelling language fits in, which I think I get in theory but not practice (I'd probably have to look at a working application and code to understand really). Some of the principles may be useful further down the line, but probably not the language itself or anything.

Technology-wise, I'm not thinking about anything novel or new, but more new ways for how various Web and SW technologies are combined and applied to this domain. (?)

So maybe the novelty is in marking up various things about content creators and using this to infer information about the processes they're involved in (or want to be involved in) in order to then facilitate these processes, without (necessarily) ever explicitly representing these processes (because from the content creators' perspective, they're certainly not thinking in terms of formal representations of processes, and in many cases won't know what they're trying to make until it's done, for example).

How to represent the inferences made might be novel and exciting, but I don't know.

Hmm, I still don't think I've figured out how to evaluate .. anything. Beyond comparing activities of users with magical-new-system vs without magical-new-system. And maybe, going back to the this-big-dataset-is-useful idea, by finding questions we can now ask about these kinds of communities that we couldn't before because they were so fragmented.