Hello from org-mode

I’m reasonably proud of this little bit of elisp. I almost know what is going on. It uses a bit of normal emacs list manipulation stuff and some sugar from dash.el. So far it seems to work.

(use-package org2blog
  :ensure    t
  :config    (setq org2blog/wp-blog-alist
                   (->> (netrc-parse "~/.netrc")
                        (-filter #'(lambda (m) (string-match-p "wordpress.com" (cdr (assoc "machine" m)))))
                         #'(lambda (m)
                             (list (cdr (assoc "machine" m))
                                   :url (concat "https://" (cdr (assoc "machine" m)) "/xmlrpc.php")
                                   :username (cdr (assoc "login" m))
                                   :password (cdr (assoc "password" m))))))))

How to run a London Clojure Dojo in 20ish easy steps

Running dojos is a lot of fun. It is also really easy. No one has to prepare a talk or a subject for the night. The most important thing is that everyone has fun. After that if people learn some clojure, then that is a great bonus. But the fun has to come first to keep people coming back.

Here is a simple(?) step by step guide. If you are unsure about how to be an MC, then just watch some bits of The Muppet Show and do what Kermit does.

All of the below are suggestions and guidelines, not rules. Do what works. This seems to be working reasonably well for us. YMMV.

  1. Find your hosts, say hello. Make sure everyone is happy. Make sure newcomers feel welcome.
  2. Make sure the food is arriving/has arrived. 
  3. Make sure there is enough to drink (beer, wine, soft drinks).
  4. Get the projector for show and tell.
  5. Set up a whiteboard. Write “Dojo Ideas” at the top. Put “Roman Numeral Calculator” as the first idea to avoid the tyranny of the blank whiteboard.
  6. Greet fellow clojurians, eat food, drink whatever until 7PM.
  7. Think of a silly question for the kick off.
  8. At 7PM round everyone up for the kick off.
  9. Thank everyone for coming, the sponsors for hosting and your fellow organisers.
  10. Get everyone to introduce themselves, say how long they’ve been doing clojure for and answer a silly question.
  11. Tell everyone that the dojo is a safe place to be a new to clojure and to try new things and learn things. Let experienced people know it is a great place to be surprised by things they didn’t know and to think hard about what they’ve learned and share it with everyone.
  12. Vote on the task for the dojo. In the 1st round people can vote for more than one idea. Do run offs if necessary. In run off rounds you can ask people to only vote for one idea. Votes are approximate, unless it is important that they aren’t. Ties in voting are OK. You can do more than one thing. Teams are sovereign. If a team wants to work and present on something other than what was voted on then that is fine.
  13. Make sure there are enough clojure environments/experienced team members to go around. Get them up front to act as the 1st member of each team if needed.
  14. Divide into teams of 4-6 people. Teams of 4 are better, but 3 is too small.
  15. Get the teams to spread out and start.
  16. Do the dojo! This should be enough time for everyone to have 10 minutes at the keyboard and 20-30 mins of discussion. Usually 1 hour 20 minutes.
  17. Tell people when each 10 minute period is up and remind teams to rotate. Everyone should write at least 1 working line of clojure code that evening, even if it is just a (println “foo”).
  18. Make sure every team understands the problem, is able to get on to wifi, isn’t struggling too much.
  19. Swap more or less experienced people from one team to another if a particular team is struggling too much. Ask them if they are still having fun first though. If they are having fun, then leave them alone.
  20. After 80 minutes or so, round everyone up for show and tell at the projector.
  21. Do show and tell. Thank everyone. Clean up. Go to the pub!

EuroClojure 2012 – Part 2

EuroClojure for me was also about community and diversity.

The community aspect of EuroClojure was obvious from the start. It was a great selection of friendly and welcoming people, which has always been my experience in the clojure community. During the community talk (from Robert Rees and Devin Walters) all of the various community organisers in the room were asked to stand up and give a shout out for their group. It felt like there were a dozen or so community organisers at the event. I also know that after the talk that there are a number of new clojure communities that are going to be formed.

Diversity overall was a mixed bag. There was good representation in the room from a number of different European countries in addition to the USA and Canada. The talks were from a mixture of professional clojurians and hobbyist clojurians. There was a good mix of ages, though no one under 20 I believe.

I also felt, and as a programme committee member strived for, a wide variety of talks. Some of the talks were theortical, and a good number were practical. The subjects covered things in the core language, tooling, devops, art, music, maths and logic. If flights from Prague had been easier we would have also had some digital humanities in the form of computational linguistics. I also hope that there was a wide enough variety of skills needed for each of the talks from beginner through to advanced.

As with many technical conferences we weren’t so good on racial and gender diversity. Most of the audience was white and male, though not exclusively. No women submitted talks this year. I hope to change that next year. I think we can do better and I hope to be able to follow the example of the OpenHatch project and do more outreach overall. I think we do have a community that welcomes difference and diversity. I think we need to do more to prove it though. 

Overall, the conference was fantastic and thanks to Marco Abis. I had a great time. I survived my talk (Rich Hickey’s eye based death beams didn’t incinerate me as I had dreamed). I got to plug my startup Mastodon C in my talk. I met a lot of lovely and friendly people (including Rich Hickey, who isn’t nearly so scary in real life). I also came away very enthusiastic and hopeful about the clojure community in Europe and worldwide. I’m now really looking forward to what we are all able to do over the next year.

EuroClojure 2012 – Part 1

At the end of a very busy week was the highlight for me. EuroClojure 2012 was a chance to gather about 250 clojurians from Europe and further afield. There were keynotes from Stuart Halloway and Rich Hickey. Due to one speaker not being able to make it there was an extra talk from Rich Hickey so we heard more about the new Reducers library and Datomic. I gave a talk on Incanter. The code and presentation for that can be found on my github repo

Here are a few of the highlights for me.

Stefan Hübner gave a great talk on Cascalog. I love the idea of having a query language for local data, random bits of data and things on disk and in memory all the way up to a hadoop cluster. While Datomic looks really cool to play with once you have your data together, Cascalog looks like a great way of getting that data into a reasonable format.

Paul Ingles talk on Users as Data fit into this. What I took away was how lossy data warehouses are. Keeping as much data about user events (similar to the CQRS/eve(nt) talk from Max Weber). I’d love to have everything in Datomic, but I know I live in a messier world than that, so I’ll always end up using something like Cascalog. Events were again central to Zach Tellman’s talk on lamina.

FAQ: How much do I need to know before I come to the dojo?

Just today I was asked a question that I’ve been asked many times before:

What level of Clojure proficiency is needed, if any?

And my answer is — none whatsoever. We formed the dojo to learn clojure, which was a language that none of us knew at the time but we were all interested in. Continue reading “FAQ: How much do I need to know before I come to the dojo?”

leiningen, clojure 1.2 and emacs

I had a bit of a struggle today.

I was trying to have a play with defrecord in clojure 1.2 in preparation for the May dojo. This meant that I needed to move up to clojure 1.2 as defrecord is new functionality. After much flailing, some help from technomancy and tcrayford on irc (Thanks!) I was able to get something up and running. Here is what works. Continue reading “leiningen, clojure 1.2 and emacs”