The London Python Code Dojo is a monthly community meeting where Python developers practice coding together. Attendees can learn through hands-on practice, teaching each other, and exploring different solutions. The dojo aims to be fun and safe for learning from mistakes. Organizers focus on setting a positive goal and providing feedback to help learning. The dojo format has been adapted from its origins to better suit the community through show-and-tell, team projects, and informal socializing over food and drinks.
translation of http://www.slideshare.net/serge_rehem/coding-dojo-em-5-minutos..
Explains the concept of a coding dojo, different types of kata, Pair Programming and Test Driven Development (TDD)
translation of http://www.slideshare.net/serge_rehem/coding-dojo-em-5-minutos..
Explains the concept of a coding dojo, different types of kata, Pair Programming and Test Driven Development (TDD)
Designing with the Body: Learning to Physically PrototypeDavid Sherwin
This is a 75-minute workshop about physically prototyping products, services, and experiences. Workshop attendees selected a design challenge, which was structured in a way to teach them about the value of prototyping their design ideas earlier in the overall design process—especially for highly complex problems. I facilitated this workshop twice at AIGA Seattle's "Into the Woods" conference at Sleeping Lady Lodge in Leavenworth, WA on October 15-16, 2010.
A presentation made by eXo Platform SEA.
Presentation introduce and demo about Coding Dojo, a methodology enhance the coding skills of attendees by doing some very small exercices in a funny atmosphere. This is like when you want to practice a sport like Judo, you need to practice some basic exercices with some judo masters before doing serious business like competitions.
There are usually two styles of exercices :
- Kata prepared by someone before the session and executed in front of the public or
Randori, a more exploraty form of a Kata where the whole group participates.
Digital storytelling for language classroomsTom Walton
Creative, collaborative, process writing using simple Web 2.0 tools (=digital storytelling) makes for great, fun language learning activities.
Presentation given at Macmillan Teachers Day in Bilbao, May 2012.
Putting Design Back into Instructional DesignCammy Bean
With such a focus on instruction, we've forgotten about Design. Or perhaps never even learned what Design is. Let's put the design back into instructional design! These are my slides from a presentation at DevLearn 2013 in Las Vegas, NV.
More design clarity. Less redesign time. What if methods like Pair Design could increase the efficiency of your team and the quality of your products? Karl Dotter will explain his hypothesis on Pair Design, how he teamed up with Co-Founder Jason Hreha and what to do to start practicing pairing with members of your team. You’ll also find out how to participate in P.A.I.R (Pairers Against Inefficiency and Rework), a fun research program we’re working on which will help quantify the benefits of Pairing.
Using Design Thinking to Develop Visitor-Centered ExperiencesWest Muse
Presenters:
Dana Mitroff Silvers, Principal and Founder, Designing Insights
Liz McDermott, Managing Editor, Web & Communications, Getty Research Institute
Design thinking is a human-centered process for problem solving and innovation. In this workshop, participants were introduced to design thinking through a hands-on, highly interactive experience. Attendees learned how to apply selected tools and methods of the design thinking framework to museums, including empathy interviewing, problem definition, rapid prototyping, and user testing.
Unconventional wisdom: Putting the WHY Before the WHAT of Presentation DesignSheila B. Robinson
This is my second slide deck on presentation design and is designed to complement (and overlap a bit) my first: Data Visualization and Information Design: One Learner's Perspective. This one is in answer to the many questions I've been getting: How do you know this stuff and where did you learn it, and WHY are there all these new rules?
Enjoy!
Since I can't embed fonts on my Mac, I had to convert to pdf. Here are the links that are no longer live in the presentation:
Slide 23: http://sethgodin.typepad.com/seths_blog/2011/10/the-atomic-powerpoint-method-of-creating-a-presentation.html
Slide 71: http://www.perceptualedge.com
http://www.perceptualedge.com/files/GraphDesignIQ.html
http://www.perceptualedge.com/examples.php
Slide 72: http://www.garrreynolds.com
http://www.garrreynolds.com/preso-tips/design/
http://www.garrreynolds.com/resources/
Slide 73: http://p2i.eval.org
http://p2i.eval.org/index.php/slide-design-guidelines/
Slide 74: http://stephanieevergreen.com
http://emeryevaluation.com
http://www.storytellingwithdata.com
Software Craftsmanship and Agile Code GamesMike Clement
Join us to talk about what it means to be a software craftsman, how the Software Craftsmanship Manifesto (http://manifesto.softwarecraftsmanship.org/) provides a framework for us to improve.
A large part of being a software craftsman is practice. Using different "code games" we can have a full toolbelt of activities that will help us (and those around us) become better at our craft.
Agile software development promises the ability to deliver value quickly. But this isn’t just a matter of process. Uncle Bob says "the only way to go fast is to go well." But how do we go well? As software developers, we can only deliver features as fast as the code base and our skills allow us. Unfortunately the quality of our code base is directly related to our skill in the past.
Musicians and athletes spend most of their time practicing, not performing. As software developers (aspiring craftsmen) we must have practice sessions that allow us to improve our skills and develop better “code sense”. We’ll look at some different “agile code games” that will help us improve our craft.
These slides were prepared to introduce district leaders to the design thinking process. The design challenge we worked on during this day-long introduction was to redesign high school media centers. These slides were used to step participants through each phase of the design thinking process.
Undesigned for: re-thinking interaciton through game-play designMaind Interaction
This workshop provides a game session for training participants in using alternatively methods for ideas generations in the design area of activities and functions permitted by physical interfaces. Instead of fixed procedure of design thinking we propose models useful to criticize existing artefacts and to structure the intuitions in a collaborative context. In this way Game-Play Design approach will support the design practice in a variety of ways, e.g. by facilitating lateral thinking training methods, offering tools appropriate to work by context techniques, investigating potential interfaces development, or by providing opportunities for collaborative design exploration and new concepts generation.
Persons interested in participating should assume the role of gamers in predicting collaboratively novel uses of well-known objects placed in their unrelated scenarios. A potential outcome is to acquire a groundwork building method for managing and analyzing real-world scenarios of interaction with objects and environments. A further goal is to experiment unusual game design situations fruitful to stimulate the concepts generation using game materials furnished to support the overcoming of conditioning processes.
The training in self-conscious design by game-play method could bring benefits to several design fields, such as service, urban, interaction and product design. In this perspective the workshop aims to suggest a subversive operation by anticipating the user needs without restrictions. The collaborative brainstorming method is intended to open design dialogues by removing the limits and conventions of the creative thinking.
This is a presentation I gave to a recent NortHACKton meeting. The audience were a mixture of seasoned developers who were new to Python and complete newbies who'd never coded anything before.
In the end everyone created a Parrot class and did a show and tell of their code to the rest of the group.
Find out about NortHACKton here: http://northackton.stdin.co.uk/blog/
Designing with the Body: Learning to Physically PrototypeDavid Sherwin
This is a 75-minute workshop about physically prototyping products, services, and experiences. Workshop attendees selected a design challenge, which was structured in a way to teach them about the value of prototyping their design ideas earlier in the overall design process—especially for highly complex problems. I facilitated this workshop twice at AIGA Seattle's "Into the Woods" conference at Sleeping Lady Lodge in Leavenworth, WA on October 15-16, 2010.
A presentation made by eXo Platform SEA.
Presentation introduce and demo about Coding Dojo, a methodology enhance the coding skills of attendees by doing some very small exercices in a funny atmosphere. This is like when you want to practice a sport like Judo, you need to practice some basic exercices with some judo masters before doing serious business like competitions.
There are usually two styles of exercices :
- Kata prepared by someone before the session and executed in front of the public or
Randori, a more exploraty form of a Kata where the whole group participates.
Digital storytelling for language classroomsTom Walton
Creative, collaborative, process writing using simple Web 2.0 tools (=digital storytelling) makes for great, fun language learning activities.
Presentation given at Macmillan Teachers Day in Bilbao, May 2012.
Putting Design Back into Instructional DesignCammy Bean
With such a focus on instruction, we've forgotten about Design. Or perhaps never even learned what Design is. Let's put the design back into instructional design! These are my slides from a presentation at DevLearn 2013 in Las Vegas, NV.
More design clarity. Less redesign time. What if methods like Pair Design could increase the efficiency of your team and the quality of your products? Karl Dotter will explain his hypothesis on Pair Design, how he teamed up with Co-Founder Jason Hreha and what to do to start practicing pairing with members of your team. You’ll also find out how to participate in P.A.I.R (Pairers Against Inefficiency and Rework), a fun research program we’re working on which will help quantify the benefits of Pairing.
Using Design Thinking to Develop Visitor-Centered ExperiencesWest Muse
Presenters:
Dana Mitroff Silvers, Principal and Founder, Designing Insights
Liz McDermott, Managing Editor, Web & Communications, Getty Research Institute
Design thinking is a human-centered process for problem solving and innovation. In this workshop, participants were introduced to design thinking through a hands-on, highly interactive experience. Attendees learned how to apply selected tools and methods of the design thinking framework to museums, including empathy interviewing, problem definition, rapid prototyping, and user testing.
Unconventional wisdom: Putting the WHY Before the WHAT of Presentation DesignSheila B. Robinson
This is my second slide deck on presentation design and is designed to complement (and overlap a bit) my first: Data Visualization and Information Design: One Learner's Perspective. This one is in answer to the many questions I've been getting: How do you know this stuff and where did you learn it, and WHY are there all these new rules?
Enjoy!
Since I can't embed fonts on my Mac, I had to convert to pdf. Here are the links that are no longer live in the presentation:
Slide 23: http://sethgodin.typepad.com/seths_blog/2011/10/the-atomic-powerpoint-method-of-creating-a-presentation.html
Slide 71: http://www.perceptualedge.com
http://www.perceptualedge.com/files/GraphDesignIQ.html
http://www.perceptualedge.com/examples.php
Slide 72: http://www.garrreynolds.com
http://www.garrreynolds.com/preso-tips/design/
http://www.garrreynolds.com/resources/
Slide 73: http://p2i.eval.org
http://p2i.eval.org/index.php/slide-design-guidelines/
Slide 74: http://stephanieevergreen.com
http://emeryevaluation.com
http://www.storytellingwithdata.com
Software Craftsmanship and Agile Code GamesMike Clement
Join us to talk about what it means to be a software craftsman, how the Software Craftsmanship Manifesto (http://manifesto.softwarecraftsmanship.org/) provides a framework for us to improve.
A large part of being a software craftsman is practice. Using different "code games" we can have a full toolbelt of activities that will help us (and those around us) become better at our craft.
Agile software development promises the ability to deliver value quickly. But this isn’t just a matter of process. Uncle Bob says "the only way to go fast is to go well." But how do we go well? As software developers, we can only deliver features as fast as the code base and our skills allow us. Unfortunately the quality of our code base is directly related to our skill in the past.
Musicians and athletes spend most of their time practicing, not performing. As software developers (aspiring craftsmen) we must have practice sessions that allow us to improve our skills and develop better “code sense”. We’ll look at some different “agile code games” that will help us improve our craft.
These slides were prepared to introduce district leaders to the design thinking process. The design challenge we worked on during this day-long introduction was to redesign high school media centers. These slides were used to step participants through each phase of the design thinking process.
Undesigned for: re-thinking interaciton through game-play designMaind Interaction
This workshop provides a game session for training participants in using alternatively methods for ideas generations in the design area of activities and functions permitted by physical interfaces. Instead of fixed procedure of design thinking we propose models useful to criticize existing artefacts and to structure the intuitions in a collaborative context. In this way Game-Play Design approach will support the design practice in a variety of ways, e.g. by facilitating lateral thinking training methods, offering tools appropriate to work by context techniques, investigating potential interfaces development, or by providing opportunities for collaborative design exploration and new concepts generation.
Persons interested in participating should assume the role of gamers in predicting collaboratively novel uses of well-known objects placed in their unrelated scenarios. A potential outcome is to acquire a groundwork building method for managing and analyzing real-world scenarios of interaction with objects and environments. A further goal is to experiment unusual game design situations fruitful to stimulate the concepts generation using game materials furnished to support the overcoming of conditioning processes.
The training in self-conscious design by game-play method could bring benefits to several design fields, such as service, urban, interaction and product design. In this perspective the workshop aims to suggest a subversive operation by anticipating the user needs without restrictions. The collaborative brainstorming method is intended to open design dialogues by removing the limits and conventions of the creative thinking.
This is a presentation I gave to a recent NortHACKton meeting. The audience were a mixture of seasoned developers who were new to Python and complete newbies who'd never coded anything before.
In the end everyone created a Parrot class and did a show and tell of their code to the rest of the group.
Find out about NortHACKton here: http://northackton.stdin.co.uk/blog/
An Introduction To FluidDB - a social database in the cloudNicholas Tollervey
Introductory material that answers the what, why and how questions relating to FluidDB (a new cloud-based database that simplifies creating, sharing, annotating and reusing information).
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
The London Python Code Dojo - An Education in Developer Education
1. The London Python
Code Dojo
An Education in
Developer Education
Nicholas Tollervey ntoll@ntoll.org
The London Python Code Dojo is a community organised monthly meeting of Pythonistas.
This non-technical talk explains what we get up to. My aim: to encourage you to organise a
dojo.
2. About Me:
• Musician (tuba, piano, organ, theory & composition)
• Teacher (mainly teenagers but also pre-school to adult)
• Philosophy of Education (concept of creativity)
• Writer (O’Reilly book coming soon)
• Developer (Python for 3 years, .NET before)
• Currently at Fluidinfo (world changing start-up) :-)
Who the hell is ntoll and why is he interested in code dojos..?
3. Agenda:
• What is a Dojo? (Official vs London definition)
• Why participate in a Dojo? (What’s in it for me?)
• What is a good Dojo? (Attendee / Organiser)
• Conclusion: Some personal observations.
I re-wrote some of this talk as a practical response to the “diversity” and “genius” keynotes. A
“dojo” is one way to address the vision/challenges these talks mention.
4. What is a dojo?
(official definition)
Dojo is a martial arts term. It’s a place where you go to practice. I feel uncomfortable about
this but the name has stuck. Perhaps we should call it a “Code-do” or “Py-do”..? (“do” means
place)
6. “Acquiring coding skills
should be a continuous
process...”
http://codingdojo.org/
Very simple philosophy. Improving existing skills is also important.
7. Assumption: A good
developer is always
learning and re-evaluating
in order to improve.
I hope we can all agree with this..?
10. The unexamined life is not
worth living.
http://en.wikiquote.org/wiki/File:Socrates_Louvre.jpg
Socrates (469-399 BCE)
The father of Western philosophy... (2500 years ago) i.e. it’s good to be in a continuous
process of examination and re-examination.
11. Much learning
does not teach
understanding.
http://en.wikiquote.org/wiki/File:Heraclitus,_Johannes_Moreelse.jpg
Heraclitus (c.535 - 475 BCE)
The original grumpy old man of ancient Greek philosophy... in other words... don’t just read
the book. Go *do* something... practice!
12. Parisian Dojo Rules
start
2mins: organise next dojo
30mins: retrospective on last dojo
10mins: decide the topic for this dojo
dojo
40mins: code (either “prepared” or “randori”
kata)
10mins: half time break
40mins: code
end
(not to scale)
What happens at a dojo? codingdojo.org sets out detailed rules for timing and conduct... The
interesting tasks are the two 40 minute “Kata”.
13. http://www.flickr.com/photos/renfield/351557228/
Kata..?
Kata is another borrowed martial arts term meaning “forms”. They’re pre-specified /
choreographed steps to be practiced again and again. Improves muscle memory.
14. Like scales or etude that musicians practice. Graded in difficulty & focus on particular
“aspects”. Practice correctly: reflect aiming for autonomy. Code-dojo kata = code problems.
15. Prepared Kata
http://www.flickr.com/photos/foundphotoslj/466713478/
• A presenter shows how to solve the problem using TDD
and BabySteps™
• Each step must make sense to everyone present
• Only interrupt if you don’t understand what’s going on
Two mechanisms for doing Kata in a dojo: Prepared and Randori. ^^^ Not a photo from the
dojo... :-)
16. Randori Kata
pilot
co-pilot
happy to volunteer
• Public pair programming using TDD
• Each pair has a time slot
• At the end the pilot returns to the audience, the co-
pilot becomes the new pilot and a new co-pilot
volunteers from the audience
Randori means “chaos taking” (freestyle). Audience can’t interrupt, only co-pilot (ask
questions, offer advice). Pilot gives a running commentary of thought process. (A dojo
photo!)
17. What is a dojo?
(London definition)
Arose from a conversation in a Python pub meet-up. I was explaining music “masterclasses”.
Jonathan Hartley responded with an explanation of the code dojo. We organised a meeting...
18. We didn’t know what we
were doing and didn’t
stick to the rules!
We really did try hard at the start.
19. Geeks actually socialising!
Coding fuel
Mistake #1: We started the evening with pizza and beer. This didn’t set the scene for calm
and thoughtful coding.
20. Code
Good turnout
About 25 people turned up. We chose to work using a Randori kata. The rule for a time slot
was 10 minutes or a passing unit test for each pair. This worked quite well... (but)
21. We only had Emacs or Vim available...
vs
...and didn’t have a standard keyboard.
The Twitter based kata sucked (too complex) :-(
Only 6-7 people got a chance to pilot.
Several more mistakes... Things we should have thought of in advance... :-(
22. We got it to work!
The task was to display a graph of a user’s followers on Twitter.
24. • Spontaneous applause for working code
• Audience participation
• Lots of discussion & debate
• A generally noisy time
Not at all like the Parisian dojo. Sorry... :-(
25. (actually, that was good stuff)
In the discussion at the end we thought interaction was a positive aspect of the evening
(photo of Gautier’s dojo beer bottle art). We continued doing Randori based dojo until...
26. I want to do a
presentation and get your
feedback...
Dave’s great idea...
Dave had a great idea. He wanted to *practice*.
27. Wouldn’t it
be great if we split into
small groups to code
together..?
Ciarán’s great idea...
Lightning struck twice... Ciaran had a good idea too. Didn’t like it that only 6-7 people
coded. Also, some attendees didn’t want to code in front of everyone but were happy in small
groups.
29. #1 Show and Tell Dojo
Rene (PyGame core dev) setting up a no-holes barred, everything-but-the-kitchen-sink
demo of PyGame... (if you ever meet Rene, ask him how he deploys websites).
30. More like a seminar
than presentation.
We encourage attendees to interrupt, ask questions, debate, code along, point out problems
and generally don’t just sit there...
32. #2 Team Dojo
These evenings are generally very energetic, fun yet concentrated in nature. It’s social coding
in the raw.
33. ( & )
+
A bit like the classic TV programme “The Great Egg Race” or Scrapheap challenge... teams
complete a pre-defined task (with Python).
34. Suggest
then
vote
on a
topic
Task ideas written on the board during the pizza and beer bit at the start. We then vote and
split into teams.
35. Teams do the same task
This takes about 1.5 hours.
36. Show, tell, review & questions
Usually the best part of the evening (for me). Often the task is solved in interesting ways
*you* might not have imagined. Presenting, explaining code & design is a good thing to
practice.
37. Why participate in a
Dojo?
How does attending a dojo relate to our assumption that a good developer is always learning
and re-evaluating themselves in order to improve?
38. • Learn by doing (practice)
• Fail safely with sympathy
• Teach one another
• Explain yourself to peers
• Explore each other’s solutions
• Build a community
Educational benefits of taking part in a Dojo are pretty obvious. You get to practice! Not the
original dojo format. We “forked” the concept, stole the ideas we liked & adapted it.
39. Nerds
Nerd bait
The pizza and beer = important means of community building and getting people relaxed.
Share “war” stories, demo stuff and generally have a good time.
40. It’s just like IRC but
you’re actually IRL!
Attendees ability/experience differs vastly. Social = non-skill based means of welcoming new
members and getting to know your peers.
44. ...in a place where it is
safe to make mistaiks...
Celebrate failure! Important point: THIS IS JUST WHAT MUSICIAN’S DO IN A REHEARSAL. You
fail here so you don’t fail when it really matters.
45. ...and you’re encouraged to show
& tell what you’re up to.
Get feedback from the other attendees. Be open: analyse, appraise, report and support.
TEACH! These are all good virtues/skills for a developer to cultivate.
46. What is a good Dojo?
(Organiser’s perspective)
I’m often mis-identified as the “organiser”. Actually, the group organises itself. I’m interested
in education & I’m reminded of something a former professor of mine once said in a lecture...
47. The effect of any
educational activity should
be to bring about a positive
change in learners.
Keith Swanwick
Emeritus Professor: Music Education (London University)
(Paraphrased)
48. This is a spade!
(obvious, right?)
http://www.flickr.com/photos/imcountingufoz/5602273537
Surely, all learning situations have positive outcomes..? They’ll be fun, interesting, life
changing, etc... (every teacher wants to be like Robin Williams in “Dead Poet’s Society”).
49. Really..?
Actually: NO. Often learning situations are boring, annoying, frustrating or just plain
*wrong*. You might be distracted, worried and/or compelled (rather than inspired).
50. How can you tell it’s
going well..?
HINT: if you see something like the previous photo then it’s going wrong. What is the essence
of a dojo going right..? I’d suggest something like...
51. • There is a positive aim
• Something is happening to
achieve this aim
• It is possible to measure if
the aim has been met (there
is feedback)
This can be generalised to any sort of learning situation (and other things too) and at both
the group and individual level.
52. • We decide on a problem
• We work collaboratively in
groups to solve the problem
• We show and tell what we
did and ask for critique and
suggestions
This is how I’d express it as a group based dojo.
53. Conclusion:
Some personal observations.
I assume everyone wants to be a better developer. One way to do this is attend a
dojo... but this is just one means to an end.
54. mmMMmm...
backwards talk
rubbish do I
How to be a
Jedi Hacker
People who want to improve are often looking for teachers - but beware of people who offer
themselves as gurus, who promote a “system” or offer pithy aphorisms.
55. This is common
in music
We have 500 years of examples in music education to draw upon. Methods and systems have
always existed, been developed, built upon and can definitely be useful but...
56. ...they can safely be ignored if something else works for you. In the very worst cases they can
do serious damage (limit autonomy since they can be straightjackets).
57. WTF?
To be an über-Hacker is to
“grok” the source completely
Try not to be impressed/follow people offering “systems” & “methodologies”. Be cynical: ask
questions (like we do in the dojo). Learn to practice learning! Yeah, that’s a pithy
aphorism. ;-)
58. The only real
wisdom is knowing you
know nothing.
http://en.wikiquote.org/wiki/File:Socrates_Louvre.jpg
Socrates (469-399 BCE)
I’m with Socrates... don’t just blindly follow what other people say, make up your own mind.
Cultivate autonomy (an important concept within Philosophy of Education).
59. If you’re ever in London
come along and say hi!
I advertise it on the Python-UK mailing list. I’ll eventually get round to doing a website. The
30 tickets usually sell out in about 6 hours of the first announcement (but email me anyway).
60. Questions..?
Binary beer bottles :-) A question for you: Are you going to organise a dojo..? Is it clear what
you have to do..? What’s stopping you..? Fork the concept and run with it!