Showing posts with label social learning. Show all posts
Showing posts with label social learning. Show all posts

Thursday, March 8, 2012

A read-only API for P2PU

I've been part of the P2PU community for a good while now, and have organised a couple of groups within their platform so I thought it was about time to give back. On top of that, they use Python and Django, two pieces of technology that up to a month ago or so were completely unknown to me and I have always wanted to learn. Not that  I know all that much about them right now, but there's nothing better for learning than using the tools in a real context and within a real project, so that is exactly what I've been doing for the last couple of weeks. #opensource_ftw!

After an initial proof of concept using tastypie, as recommended by the chaps in the python.ie mailing list, I have started to work on it a bit more seriously and it will hopefully soon enough be reviewed and merged with the main Lernanta codebase. My fork of Lernanta has an API branch where you can find all the code to date.


And you might be wondering... why am I telling you all this? Because I could do with some help! If you want to learn not only Python and Django but aslo about RESTful architecture and web services do not hesitate in joining me.

Illustration by @alisonjeancole


You can also have a look at the blog post in the main P2PU blog.

Wednesday, January 11, 2012

New Year, New Wonderland Project

Another year begins and so does another Wonderland Wednesday Project. This time we have decided to improve the telepointer module that is already part of the wonderland-modules project.

The current telepointer has a bit of a weird shape and it's a 3D object. I personally cannot think of the benefits of a 3D pointer as compared to a 2D one… sounds the same to me!
The user name renders on top of the pointer in billboard mode, and that makes parts of the word disappear depending on the surface that the pointer is held against. So the first 2 tasks we will go for first are to change the appearance to a more regular 2D shape, and more importantly, to make it work when you take control of a 2D app.

This module is a good example of a Wonderland Component or Capability. In this case, instead of being available to attach to any object in world, it is programmatically attached to all avatars through a server plugin. A nice example if you want to see how to do such a thing.

We will be working on this again on Wednesday the 18th of January so feel free to pop along to the community server at 1p.m. EST or 6p.m. here in Dublin.

Thursday, July 28, 2011

Hackerspace and Formal education discussion at Dublin GTUG

After some great responses to the hackerspace and formal education discussion at the monthly Dublin GTUG meet up I would like to make a few comments on the topic.

I don't want to be controversial but I do have to be a bit critical of the event for the very reason Seán mentions: A panel in which 4 out of 5 participants (plus the host) are clearly on one side, and the reamining participant doesn't take sides, can not generate much discussion. On top of that, if you frame it within a local group meetup, where at least a 90% of the people are also going to be on the hackerspace side... well, what can I say?

And don't get me wrong, I really enjoyed the session and I think some very good points were brought up but it would be very interesting to hear some arguments from the other side. Not only from an academic point of view, but running a hackerspace within a college (as it seems to be one of the suggestions) carries a lot of administrative issues such as access to the space, who pays for stuff and how that affects group dynamics (seems like at least the Dublin hackerspace guys prefer to stay away from external funding), who is responsible and liable in the case of anything bad happening, and so on. There are a bunch of issues that we missed out on because there was no one there to expose them.

A point that was fairly commented on was assessment, which is (in my opinion) the hardest topic in education, and (again in my opinion) the one that should be the focus of all potential integration of hackerspaces and formal education.
I am all for innovative and creative educational experiences but SADLY students are still evaluated in isolation and in an environment where collaboration is considered cheating.
This needs changing but hackerspaces only provide for the first part of the equation and assessment is not even an issue. Or is it?
I'd say that there is always assessment in all kind of social interactions. You are obviously not going to be awarded a degree in your hackerspace but there are other kinds of peer review and recognition patterns going on. More active members will become part of the organisation, running courses and leading events, or getting praise and recognition for the pieces they hack together. That peer recognition is obviously enough to motivate involvement with the community so could we use that as a basis for more formal assessment? I would like to hear the thoughts of academics on this (although I might not like what I hear back!).

The panel mentioned ditching standardised tests in favour of a viva after 4 years undergrad, bringing the post-graduate model into undergrad. I'd be happy with that too.

I would also like to comment on a couple of points about formal education that I felt (personal opinion) that were not all that fair. We've all seen Sir Ken Robinson's TED talks and RSA video many times and know that education is rotten but universities can also be places for innovation and fun stuff; you can see it around any postgrad lab where people are given the freedom to work on what they are more interested in. It was mentioned that students coming from a hackerspace background can do really creative projects so it is unfair to say that that does not happen.

Another comment from the host I would like to point out is that he mentioned his disappointment after entering a university classroom not long ago and seeing a waterfall model in a whiteboard (or a similar situation).
I'd say there is nothing wrong with studying waterfall this day and age. The real problem would be if the topic ended there and no other alternatives were discussed. I bring up this because I think in our field (talking about software development) we don't pay enough attention to the past and we are therefore bound to repeat the same mistakes. This is why classic books such as The Mythical Man-Month or The Psychology of Computer Programming remain very much current, even though they were written many years before about half of the audience at the discussion where even born!

Another fair point made by the panel was the big gap between education and the workplace, which funnily enough is my research topic. I still don't have a solution for that, but as soon as I get it sorted you'll be the first ones to know... yeah, that's supposed to be a joke. A bad one. I know.

So as Seán mentions there are a lot of unaswered questions and I would like to bring up another one here: If we are all in the hackerspace side... why are we all still getting degrees?

All panellist have degrees, are working towards one (or more), or expecting to get enough points to get into one.
John Looney mentioned that Google hires people with no degrees (about a 10% of current staff if I heard correctly?) so why are we still going through the pain of getting one?
(Lecturer) Mark described the process as something like yearly semaphores that are used to sort people into groups and keep them entertained for a while. Is the social pressure worth all that pain?

It was very funny to hear one of the guys from 091 Labs in Galway commenting on the Irish mums effect, that can affect how courses can be considered good or bad.
And talking about mums, wouldn't it be nice that instead of being proud of their kid's degrees they'd be proud of their kids spending all evenings at the local hackerspace? Can we make that happen?


As a personal note, I would like to add that I completely disagree with the comments about free education filling up lecture theatres with people that somehow do not deserve being there.
I would hope we could focus on challenging those fake social needs that equate having a degree with being 'someone'. In that case only people with a real interest would go to college, regardless of their parents (or themselves) having the money (or not) to pay for fees.


Utopian? yes, and almost as unachievable as  teaching kids IT skills (Coder Dojocomputer club house, Camara), getting people to build stuff (TOG091labs NexusMilklabs), or creating great software and communities through volunteer work (Apache Foundation, GNU OS, P2PUOpen Wonderland).

Monday, July 18, 2011

Dublin JavaScript Group July meet up -- Kata Reloaded!

We are organising another Kata session for the Dublin Javascript meetup this month, which will happen tomorrow Tuesday the 19th at 6.30pm @amworks. You can sign up here.

These are my slides for the event, which are pretty much the same as the ones I used last month.


The initial idea was to have a presentation on Processing.sj although that has been postponed, but I'm sure Nigel will come up with something. And in any case we are going ahead with uncle Bob's Prime Factors Kata.

The solution, in the form of a powerpoint document, can be found here so you don't really have to worry about the solution itself and can focus on practising the Kata instead.
A couple of interesting points I've noticed after practising it a couple of times are the differences between his Java implementation and a JavaScript one, and my mixed feelings to his last refactoring, which I find a bit contrived. I prefer to stop at the level of 'while' structures because I believe it preserves the intent of the algorithm a lot more than if you go the whole way and replace them with 'for' structures. The result has more lines of code but in my head it's clearer. But as usual, this is a personal preference and everyone will have their own, which is a good thing!

The format for this part of the meetup will be the following:
I will go through the slides, which will take me about 3 minutes. Then we will set about 20 minutes for people to work on the Kata. Working in pairs using ping pong pairing would be highly recommended. The idea is that one person writes the first test, the other person makes that test pass and writes the following test, and this goes on until the Kata is solved. If you don't want to pair, that is fine. If you don't want to program at all, that is fine too!
During those 20 minutes I'll be available to help out, especially to any new faces that are not familiar with the concept of a Kata or with Jasmine. At then end of this period we will project one solution and have a short retrospective about it.

And that is all, please feel free to join us from 6.30pm at amworks. See you there!

Tuesday, July 12, 2011

Code Review Session for Open Wonderland 0.5 Preview 5

Preview 5 is coming... finally!

The Open Wonderland community is closing off the last bunch of issues, being the major one the Video Module that will finally work out of the box, without having to fiddle with the sources. As usual, Jon is in charge of the really hard stuff (Thanks Jon!).

As always, this is a community effort and we are all trying to contribute as much as we can. If you would like to help us move forward please do not hesitate to contact us!

At the meeting, the usual suspects were around, and we all took on some of the problems to fix. On my side of things, I've been poking about with the Placemarks menu, trying to make it a bit more user friendly by alphabetising the marks, separating them in more logical chunks, and so on.

Discussing and Assigning Bugs in-world


Last wonderland Wednesday session was devoted to discuss what was going to be fixed and added in the preview, and this Wednesday (July the 13th), we have organised a Code Review session after the normal Wednesday session.
I think a code review is a great way to learn, and it will definitely be very helpful for me, as I am not very familiar with the codebase. Please feel free to join us if you are interested in Wonderland development.

Tuesday, June 21, 2011

Dublin JavaScript Group June meet up -- jQuery and Jasmine

In a couple of hours the JavaScript Dublin Group will meet up for the second time. The first meetup was last month, and it was basically a gathering to get to meet other people and talk a bit about organisation.
So this will be the first time for a technical session. Nigel Kelly will be talking about jQuery apps, and I will run a Kata session in JavaScript using Jasmine. I hope people will follow along. We will use the standalone version of Jasmine and the kata chosen for the session is Fizz Buzz.

I came up with the following 4 slides (yeah, want to keep it short!):



The slides will not make much sense on their own, so you better come to the meet up!


This means that I will miss the P2PU SICP study group session on IRC (freenode #sicp room) today at 7pm GTM, 3pm EST, but it's for a good cause, right? :)

Friday, June 17, 2011

learn, laugh and move on!

There's been a lot going on lately and as a professional procrastinator I couldn't let go the chance of putting off writing a new blog post, but with things going back to normal (hopefully!) it's about time for a bit of reflection.

It's been a very social few weeks, ending May with a double bill: The software craftsmanship conference in Bletchley Park, and a coding day with the chaps of codingday.org here in Dublin.

What can I say about scuk11? it was a great day with fantastic sessions and I got to meet a great bunch of Spaniards in red t-shirts. Happy faces all over... yeah, the bar was already open!

The Dublin event was also fantastic and although it was first thought as a coderetreat, the addition of scientists and their real problems changed the nature of the session itself and made of it a fantastic coding day. The group I was working with got a spinning cube in the browser, with three different lights and three particles lighting up the cube with different colours. Great fun using the Three.js library!

The month of June started with @silverspoon organising hack nights in a café near the city centre, that I sadly missed because I was in Barcelona for a conference. Spain was great, as usual, although it was raining most of the time, but that didn't really have an impact on things such as meeting old friends, the great conversations we had, and of course, the fantastic food!

On Tuesday the 14th we had the first meet up for the SICP study group at P2PU. You can see what happened in the new wiki. This is an open group which basically means that you can join in anytime that suits you. We will meet twice a week for the next couple of months, Tuesdays and Sundays at 7pm GMT, 3pm EST. We are hoping to finish a section every two weeks, including exercises. As chapter one of the book has 3 sections, we are hoping for a 6 week period to be done with it. Wish us luck!!! or even better, join in!!!

Last night the first Ruby Project Night happened in armworks. The space is absolutely great and I want to thank Alan for hosting it. We didn't really know what to expect at first, and after a bit of chat and trying to get the projector going, we started hacking away in a rails 3 gem, something that none of us had done before. We didn't get too far but at least we got it packing and installing fine. As soon as the @theirishpenguin pushes it publicly I will share the link here. It was great to meet a bunch of enthusiastic people and looking forward to meeting them again!

This morning I read this 'Help Wanted' message from @oisin in the ruby Ireland list. If you are looking for contract Ruby work you should definitely get in touch with him. His last talk at ruby Ireland was really interesting.
In the thread he mentions that they like egoless programming which brought me back to the this old post of mine. Weingberg's book is a very recommended read even if as myself, you were not even born when it was written!

An finally, more to look forward to as the first 'technical' meet up of the Javascript Dublin group will be next Tuesday 21st at 7pm. A presentation about jQuery for web apps and a kata with Jasmine are in the menu. Are you really going to miss that???

Thursday, May 19, 2011

Mutant-Java and the KataLonja

Another month and another Kata with the 12meses12katas crowd. This time the kata is in Spanish, and it was created by the agilismo.es guys for the professional track of XGN2011. If anyone needs/wants a translation, do get in touch and I'll produce one. You can find the original version in github: KataLonja.

The Kata is about a Galician chap who wants to make some money by selling Scalops, Octopus, and Spider Crabs in a hired van. We are given a series of prices that markets in different cities will pay for the goods, alongside with distances, transport costs, and depreciation rates for the food, and we need to provide the most interesting route to get a best sale for our intrepid entrepreneur.

As a Galician immigrant myself, this is the simplest kata ever: I would drive the van right into my garage and the goods straight into my fridge; as easy as that!

Sadly this is not going to happen so let's get back to the kata. I'm certainly nowhere near finishing it, I only gave it a first go last night before bed but some cool stuff is already coming up out of it.
As I mentioned in a previous post, I use Katas to refresh some concepts that I haven't seen in a while, or that although I might use them in my day job, I've never gone deeper at them than the old getting the job done.
Last month I choose JavaScript for the bowling kata, and because I started way too late (the last day of the month!), that was the only implementation that I practised on the day. I will try and get this one practised in both Java and JavaScript, starting with the former.

Java has no associative arrays and it's generally accepted that you will use Maps instead. Maps can be very straight forward if you are using an immutable object as the key for your pair, but can get tricky if you decide to use your own class. So that's exactly what I did. It might not be the best fit for the problem at hand, or yield the leaner and cleaner code possible, but no one will have to maintain this code and it's going to be thrown away anyway so better have a bit of fun with it!

So I have created an immutable class for Seafood that I will be using as a key for at least two maps I'm using in other classes. That means overriding equals() and hashcode(), and being careful with state and escaping references to this. But as I said above, the code is nowhere near written, so what's the point of the post you will be asking yourself? I just wanted to share 3 links that have been helpful in digging a bit deeper in the adventure so far. They are:


In them you will find good advice on stuff such as when to create immutable classes and how, uses of immutability including the flyweight pattern, overriding equals() and hashcode(), and a great discussion on how to keep the equals() contract on extended classes, adapted from the book Programming in Scala into Java.

I will be digging a bit more, hopefully in the next couple of days, in topics such as choosing the right map implementation and a couple more things that I want to try (I'd like to write my cucumber step definitions in Ruby instead of Java but I'm not sure I can do that, so will have to find out!).
I also intend to write another post if I ever get to practise the Kata in JavaScript. Comparing both implementations would be cool so let's hope for that!

Monday, April 25, 2011

SICP Study group at P2PU

As mentioned in a previous post, I have decided to learn JavaScript in a serious and deep way, and after following Douglas Crockford's advice on reading the little schemer, it's time for Structure and Interpretation of Computer Programs, also known as SICP.

Due to low numbers in the Anglo-Celt SICP Study Group, we have decided to open the group to the world through the Peer to Peer University (P2PU).

The course is still in draft but so far I've had great feedback from some of the core P2PU community members and I'm hoping that it will go ahead. You can see the draft of the course here: SICP Study group.

[UPDATE]: The course has been moved to the new P2PU site and it is now hosted here and open for application.

As usual, this is a peer to peer, community based effort, and everybody is welcome, even those of you that have read the book already. Assuming the role of mentor can be a fantastic experience, especially in terms of communication and other soft skills that are so important in our field.

To join the course all you need is the motivation to read the book and participate actively in the group, writing blog posts about what you are learning and experiencing, and be willing to share your solutions through github.

As in the previous course, I expect to use Open Wonderland for some of the meetings, but the course can be followed in an asynchronous manner too. If you are interested head to the course and apply (once it's open), or give us a shout if you have any questions!

Wednesday, April 13, 2011

Wonderland Wednesday -- Subsnapshot importer

We've been working on a new Open Wonderland module for exporting and importing parts of a world for the last couple of months. The idea is that when you have a world laid out, you might want to export bits and pieces, or even the whole space, to rebuild it at a later stage or in a different server, or simply as a backup of all your hard work.

Exporting is done by just right clicking in a model or container and choosing Export.
Importing is done by just dragging and dropping the exported file onto the Wonderland client. Easy peasy!

A couple of shots from today's session, in wich we are exporting and importing a bunch of the big fellas.

Anyone needs an army?

Well behaved big fellas

bit to the left... bit to the right... perfect!

The module is taking this long to be developed because we are writing all the code as a group, and we only meet about 1 hour a week, so things are moving slowly.

As a result, we are all learning a big deal from each other, especially from Jon, but all of us have worked on parts of the module, which is really cool.

We are even using JUnit to test bits and pieces of the code. The codebase was not written with automated testing in mind, but we are doing all we can to move towards that direction, even if it's just in small doses, and the results are great so far, cause although we are quite far from being able to TDD or test-first even, testing after writing is saving us a lot of time in deploys and server restarts.


Also we are not really pairing but 'grouping', and although communication can be harder than in the former, we are having a lot of fun, and that is what really counts!

These are a couple of shots of us working against netbeans and also the space we use, with the wallcard on the far end wall with all the stickies.


Close up of Netbeans in-world
The group writing code, live

The WallCard with all the stickies: we are almost there! ...almost!
Better quality pictures can be found on facebook.
These sessions happen most Wednesdays at 1p.m EST, 6p.m GMT, and everybody is welcome, so hope to see some of you quite soon!

Monday, March 14, 2011

Code retreat in Winchester

I had a quite big post written about the event in Winchester but as a proof of how much I learned in the space of just one day, I went into end of session mode and deleted it!

It was an intense day but very enjoyable. For me, my first code retreat and also my first time pairing with another person in the same room. All my previous pairing experience had been remotely, and I have to say that I did enjoy sitting side by side, but I could not do a fair comparison because I had never met any of these guys before, and shouldn't compare that with the familiarity of knowing the other person, even if only remotely.

Each session was surprisingly different from the previous one, not only due to the rules, but also due to personalities and languages. I must admit that by the end of the last iteration I had already lost a part of my brain. When someone said during the last retrospective that they needed a pint, I couldn't help but think that I'd rather have a bucket full to dunk my whole head in it!

Many thanks to everyone at Eden cause the organisation was excellent, and to all the participants for making it possible. It would've been cool to see @ecomba and @sermoa in a demo session of TDD as if you meant it; I'm sure I could have learned a lot from that. Also I have some concerns about retrospectives, mainly because only the more extroverted types participate more freely. A group of more than 20 people can be frightening for some. But such is life, right?

In any case, the event certainly surpassed all my (high) expectations and I can't wait to attend another one. If anyone is interested in facilitating one in Ireland, please get in touch and I could talk to local dev groups about it.

Tuesday, November 30, 2010

about frogs and programmers

I am reading Gerald M. Weinberg's classic book Psychology of Computer Programming, which I am finding really interesting, and it also has some funny bits:

"Looking back, it seems that forcing programmers to work in isolation is like trying to study the swimming behaviour of frogs by cutting off their legs and putting those legs in the water to watch them swim. After all, everyone knows that the frog swims with its legs, so why complicate the experiments with all the rest of the frog?"


Sadly, in many senses, things don't seem to have changed much in the last 40 years.