Monday 30th March 2015 (14:00PM)
Over the weekend I had the privilege of attending the world's first Trans*code event in London. Trans*code is a hack-day for transgender persons and trans-allies (like me). We came together to create software that addresses transgender issues and participate in introductory programming workshops for people not currently familiar with the world of technology.
A hack-day is usually a community organised event centred around some form of civic or community good. For example, I participate in and sometimes help to organise the health-care related NHS Hackdays, I organise the education track at PyconUK where we run hack-day like workshops for teachers and developers for generating educational resources and I've taken part in many post-conference sprints where members of the free-software community get together to plan and hack.
I strongly believe that wonderful things happen when diverse groups of people get together to collaborate and solve problems: any cooperation that brings about a cosmopolitan, tolerant and receptive world view should be encouraged. After all, what's the alternative? I'd argue its an obviously undesirable small-minded, prejudiced and unimaginative world view. I also passionately believe that programming is a vehicle for empowerment and emancipation. Our world is increasingly influenced and controlled by computing so it is important that everyone has the opportunity to take control of technology and make it work for them.
However, the majority of such hack-days are attended by people like me - white straight dudes who already write code. Therefore I have no hesitation in supporting any effort that will increase diversity, participation and understanding.
How did I find out about Trans*code? My main programming language is Python, I'm a former teacher and I'm interested in education. I have a buddy called Naomi who is also a Python programmer, former teacher and has an interest in education. She's the organiser and force-of-nature behind Trans*code. Naomi put out the word via various UK based Python channels and I was one of several Pythonists attending as a trans-ally.
Briefly, here are my impressions of the day:
The transgender people I chatted with are brave. From my position of ignorance I had no idea about some of the situations trans-folk have to deal with and overcome on a regular basis.
It was a really friendly event. When there were disagreements people were sympathetic and respectful. It's refreshing to encounter this sort of deliberation rather than a pissing contest between silverback alpha-geeks.
I'm a naturally enthusiastic person and given only half a chance will talk the hind-leg off a proverbial donkey, organise people and "get stuff done". It's important to listen, especially given my position of ignorance. I learned to frame my contributions as "have you thought about X..?" type questions. I should do this more often.
My group were a lot of fun to work with. The idea was an application called TransFlare a sort of "bat signal" or "flare" mobile app for the trans community: in case of trouble, use the application to call for help.
As far as I could tell, the most valuable part of the day was the debate, idea generation and discussion we had rather than any coding we got done (truth be told, I didn't do a lot of coding). We ended up thinking about a lot of different things:
As a technical person, these are really interesting problems to solve but with the advantage of having real use-cases to flesh out what can sometimes be quite abstract problems.
I had a lot of fun and I hope my contribution was helpful.
There are plans afoot to run another Trans*code related event at this year's PyconUK in September in Coventry. I'd encourage you to join in and support in any way that you can.
Sunday 30th November 2014 (2:00PM)
I recently had the opportunity to dip into the book, A History of the World in 100 Objects. It mentions one of my favourite objects in the British Museum: a 5100 year old Mesopotamian clay tablet that records the allocation of beer by administrators in the city of Uruk (I've written about this object before).
The chapter about this tablet explains how literacy was a catalyst for a fundamental change in human civilization. For the first time complex information could be recorded, checked and stored outside the human mind. It concludes with the following quote from the American philosopher John Searle:
"Writing is essential for the creation of what we think of as human civilization. It has a creative capacity that may not even have been intended. I think you don't understand the full import of the revolution brought by writing if you think of it just as preserving information into the future. There are two areas where it makes an absolutely decisive difference to the whole history of the human species. One is complex thought. There's a limit to what you can do with the spoken word. You cannot really do higher mathematics or even more complex forms of philosophical argument unless you have some way of writing it down and scanning it. So it's not adequate to think of writing just as a way of recording, for the future, facts about the past and the present. On the contrary, it is immensely creative. But there's a second thing about writing which is just as important: when you write down you don't just record what already exists, you create new entities - money, corporations, governments, complex forms of society. Writing is essential for all of them."
What does Searle mean when he states that writing creates new entities essential for complex society?
Try this example:
I am married to Mary and we have a piece of paper called a marriage certificate that proves we are. Somewhere else is written down an act of Parliament explaining how one obtains such a proof of matrimonial status along with definitions of terminology, responsibilities and activities in accordance with the custom of "marriage" in England and Wales.
Mary and I had to make vows (that are written down somewhere) in front of witnesses. Since neither of us is religious we had a civil marriage so a licensed registrar then spoke the specified words (that are also written down somewhere), "I now pronounce you husband and wife". It was only until these words were spoken by such a licensed person in accordance with the practices written down in the afore mentioned act of Parliament that Mary and I were married.
Immediately afterwards, we signed our names in a special register to record our marriage and duly received our marriage certificate. Sometimes we show the certificate to people in accordance with the practices and customs written down in other acts of Parliament to prove that we are, indeed, married.
In terms of the physical world, not a lot happened that was of great interest. An alien observer from another planet might describe the occasion as a group of hairless apes making sounds then scrawling marks on flattened dead tree.
The new entities and aspects of complex society that Searle is thinking of are, of course, those things that only exist in our human, social world.
The "truthiness" of my marriage, a certain act of Parliament or other such things does not come about in the same way that it is true to say that water boils at a certain temperature. Importantly, this doesn't make such things less true (I'm still married).
The mechanism for creating the truth of such social states of affairs is not the result of observing a natural phenomena (as a scientist might do in the case of the boiling point of water), rather, it is merely someone expressing some thing in some context. The registrar (someone) saying "I now pronounce you husband and wife" (some thing) at a wedding ceremony (some context) is how we became husband and wife. It is a special incantation. That it lacks physical properties or side effects is overcome by bureaucratic overhead (writing of a certificate to record our married state and other activities in accordance with written down laws - as I describe above). This is how writing creates complex forms of society.
Such performative statements (simply expressing them makes them true) don't have to be spoken by some official person as is the case at a wedding. Simply by writing them down can be enough. For example, the United States' twenty dollar bill has written on it, "This note is legal tender for all debts public and private". This makes it money! (Although I can't just write this on any old piece of paper and expect to get away with purchasing things with it - the "someone" making the statement and "context" of the statement are both wrong according to the terms set out by some other performative statement written down as a US law).
Put another way, it would seem bizarre to use this mechanism in the context of the physical world: I simply can't decree that water boils at a certain temperature because I say so and then issue a certificate to prove it! This mechanism only works when constructing facts in the human social world.
Does the social world have any effect on the physical world? Of course it does: the rules of football are social constructs yet govern how people should run around a field kicking a ball in a physical sense.
We share a culture, a form of life, a social world that exists by virtue of us being human and doing things humans do. This includes creating social constructs that only exist in such a social world via performative statements. It is only through our behaviour that evidence of such social constructs is manifested in the physical world (we run around a pitch kicking a ball in accordance with the socially constructed rules of football).
This is a key aspect Searle's argument: it requires humans to work. Someone must have written down such statements and others, collectively, need to have read, understood and acted as a result of comprehending such writing. This is, in a sense, is a movement of thought or intent between minds.
Of course, intentions and information can be shared via speech. Yet I believe Searle is correct to point out that literacy both records and creates such social entities that shape our collective behaviour that would be otherwise difficult or impossible to work with in a pre-literate society. Just imagine how hard it would be to keep track of the arguments in this blog post without the convenience of being able to re-read them. How would we keep track of complex laws? There's only so much anyone can commit to memory.
It's important to note that such movement of thought between minds is not just textual in nature: for example, it works when writing symbols in the musical and mathematical realms. I find it remarkable that I can enjoy the musical thoughts of a genius such as Beethoven almost 200 years after his death - I consider it a privilege when I think about the amount of effort spent to bring about such aural experiences.
Furthermore, it is possible to follow mathematical thought processes so long as you understand what the symbols represent and how they are to be manipulated. Take, 2+3=5 for instance. As any child will tell you, the "=" (equals) symbol means that what's written on its left is of equal quantity to what's written on its right. Furthermore, the "+" (sum) symbol indicates the quantities adjacent to its left and right should be added together (start at the highest quantity and count up the other-quantity-number-of-steps to find the result). Such mathematical literacy symbolically records thought processes that unfold in a deterministic manner (it's a formal system: if you understand the symbols, 2+3 must equal 5).
And so we get to the nub of this blog post:
Like us, Computers process symbols. These symbols are a sort of literacy (we write them down as code). Such symbols record our thoughts as algorithms (instructions used to achieve some useful end) or data (representation of information that can be easily manipulated by the computer).
To execute such algorithms or manipulate such data does not require a human - a computer will do. Computers are designed, created and operated by humans but the execution of the algorithm and manipulation of data is most definitely within the digital realm. This is, in a sense, a movement of thought, intent or information between (human) minds: I want to do X, so execute a program (written by another human) that brings about X but get a computer to do it for me (rather than a human).
For example, I want to buy a ticket to travel on the train to London. I used to have to ask a ticket clerk at the station to bring this about (assuming we both followed the conventions required for the purchase of a ticket). Today I can book online, print my tickets or even pick them up from an automated ticket machine with no human intervention at all.
I am not saying computers are minds (more on this in a later blog post). Merely, computers are a medium for the transmission of thought, intent or information (expressed as algorithms or data) in a similar way to how clay tablets or pen and paper are also a medium for the transmission of thought, intent or information (expressed as writing). The important distinction is that computers are active (they can execute the algorithm or manipulate the data) and clay tablets or pen and paper are passive (a human is required to act upon their content).
Perhaps this is the fundamental change of our time. We live in a social world where I can record my thoughts and not require a human for their content to be acted upon (for example, as a programmer I can write a train-ticket purchasing program for other people to use). The computer, in some sense, is the performative actor (rather than, say, the registrar at my wedding). In Searle's terms, the software is the someone expressing some thing ("you have a valid ticket to travel on such-and-such a train") in a computational context that we humans accept as valid (in the same way we accept a wedding as a valid context for a registrar to perform their duties).
Personally, I need to think about this further simply because I believe we (humanity) have not lived with computers long enough to comprehensively understand their role in our daily (social) lives. You might say that we're at the same stage with computers as the Mesopotamians were with writing when they created the clay tablet.
Interesting times ahead.
Image credits: Mesopotamian tablet © Trustees of the British Museum
Saturday 11th October (5:30PM)
(This write-up is a bit late: I've been ill and we've recently had a death in the family.)
This year was the biggest ever PyCon UK conference - a community organised event for users of the Python programming language. Just under 500 tickets were booked including 45 for teachers and 75 for kids. We couldn't have done it without the support of the sponsors, especially Bank of America, the Python Software Foundation and Raspberry Pi Foundation without whom the education track would not have been possible.
For me, the person responsible for the education track, I had most fun working with the teachers and kids who turned up. I also seemed to be giving far too many presentations (four in total during PyCon UK). I also realised, due to circumstances beyond my control, that I have many kind and generous friends in the Python community and that when disaster strikes people step up and make "stuff" happen even at 4 o'clock in the morning!
It was a privilege to watch several masters at work during the education track:
The education team from the RaspberryPi Foundation are insane, inspiring and intelligent in equal measure - if you can attend one of their free Picademy events for teachers than you're in for a real treat. It's easy to sound bombastic about the work of the Raspberry Pi Foundation (so allow me to demonstrate): the pedagogical forces that they unleash are both unique (because who'd have thought such a small, cheap and "raw" piece of kit would result in such a huge amount of interest) and important (because the Raspberry Pi liberates computing education from the boring sad little world of locked down RM boxes, presentations and spreadsheets). That they are a UK based effort makes it all the more important that we, the UK's Python community, give them as much of our support as possible.
It was also wonderful to see Martin O'Hanlon work his Minecraft magic on both teachers and students. Martin introduces Python programming via only a handful of very simple Minecraft related concepts that he uses to build some amazing things within the Minecraft world (his in-game house that follows you around was a big hit with the kids). He's so good at this sort of thing that he's written a book on this very subject (that's bound to be a big hit with young programmers and teachers alike - what an inspiring textbook that would be). In case you can't wait for its publication you can grab his PyCon UK resources here.
(Here's a photo of Martin and fellow author Carrie Anne looking like the cartoon versions of themselves used in their books.)
I was especially pleased to welcome John Pinkney and his NAO robots. I met John at a CAS hub meeting over the summer where he described how he uses robots as a catalyst for all sorts of interesting educational activities. The visual programming tool used to interact with the robots strikes me as particularly child-friendly. Interestingly the code behind the visual building blocks used to describe the robot's behaviour is all written in Python (and thus handily gave me an excuse to invite John to PyCon UK). John gave two workshops (one for teachers, the other for kids) and the fact that he managed to keep both groups in rapt awe for an hour is testament to both his skill as a teacher and the "charisma" of the robots. We also ran a robot code dojo at which we let the developers play with the bots. I gave a quick overview of the Python API to the assembled developers and my slides can be found here.
Dave Ames also deserves a special mention for leading a couple of excellent workshops on using the PyGame project. Dave's workshops involved taking an existing (yet broken / unfinished) game and modifying the code to fix things and make it your own. I really like this approach since it gives students an existing base to work from. It also makes sure that beginner coders begin the think about debugging their own and other people's code (for which we provided all attendees with a PyCon UK Debug Duck. This rather excellent state of affairs is wonderfully encapsulated in the following video from the kids' day:
Alan O'Donohoe, Ben Smith and Vikki Dodd are three teachers without which the education track would not function. Alan's pragmatic encouragement when disaster struck (twice) was invaluable and Ben and Vikki made innumerable contributions throughout the event that meant I was regularly thinking, "Oh wow, [Ben/Vikki] has already done that." That's what I mean when I say that people "step up".
It was an immense privilege and a lot of fun to work with Naomi Ceder (founder of the PyCon US Education Summit) on our own small contribution to the education track: introducing object oriented programming to teachers through the medium of cows. I especially enjoyed the tag wrestling modus operandi of our talk. I'll leave you to guess which one of us was Big Daddy or Giant Haystacks (a UK specific cultural reference I'm sure Naomi will be delighted to quickly forget). In any case, both teachers and developers got stuck into our Parrot related exercise (as the picture below shows):
Finally, Carrie Anne gave a stonking keynote address to the whole conference on Sunday afternoon. I've heard far too many boring-yet-worthy-important-people-talking-about-boring-yet-worthy-important-things as conference keynotes in my time. Happily it soon became apparent that Carrie Anne's keynote was definitely not a boring-yet-worthy talk about matters of an educational nature. If you want to actually know what Carrie Anne said you should invite her to your conference to give the keynote. It would be definitely worth it: evidence via social networks suggests hers was the warmest received and most highly regarded keynote of this year's conference.
Other wonderful aspects of this year's PyCon UK included the beer for the conference meal (brewed using Python), the charity cheese shop that raised several hundred pounds for a local children's hospice and the inevitable silliness during the lightning talks.
Finally, it was a pleasure to catch up with Van Lindberg (chair of the Python Software Foundation). I'll leave what we discussed for a separate blog post but, in the meantime, you should all totally sign up to be members of the PSF here. Why? Because,
The mission of the Python Software Foundation is to promote, protect, and advance the Python programming language, and to support and facilitate the growth of a diverse and international community of Python programmers.
We've already started planning next year's conference. If you can think of any ways in which we can make it better please don't hesitate to get in touch.