Coding Dojos are meetings where programmers gather to work on programming challenges together. They involve short timed sessions where pairs of programmers take turns writing code at a shared computer while others observe. Common formats include Randori, where pairs rotate frequently, and Prepared Kata, where one programmer demonstrates a solution. The goals are to learn, have fun, and improve coding skills in a social environment through practices like test-driven development. Effective Coding Dojos require advance planning of the space, equipment, exercises, and group agreements.
This talk happened at the University of Tarragona (URV) with a lot of students as attendees. It encourages to strive for a learning culture and being better professionals in software development.
A brief introduction on Python.
This talk was presented at the meeting of the Beijing Software Craftsmanship Group on 2013/02/28.
http://www.meetup.com/BeijingSoftwareCraftsmanship/events/103481622
Please refer to the code demo'ed live:
https://github.com/rhcarvalho/talks/tree/master/2013/02-28%20Python%20in%2015%20minutes/code
Beginning nxt programming_workshop in Computer education robotics whoevgjvvvv...OhSoAwesomeGirl
It's all about ROBOTICS. so it can be helpful. get me? hahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbdon't think that i am stupid whahahahahahahahaha
Keynote presentation at PPIG 2015, Bournemouth 2015-07-17.
Presenting experiences of running workshops for programmers to learn new programming languages, and programmers to improve knowledge of programming languages they already use, with an emphasis and feeding ideas and questions into the psychology of programming community.
A draft slideshow on best practices for running a webinar. Note that I break all the rules for slideshows by text-loading!! But, alas, seemed necessary here! Use the notes as well!
This talk happened at the University of Tarragona (URV) with a lot of students as attendees. It encourages to strive for a learning culture and being better professionals in software development.
A brief introduction on Python.
This talk was presented at the meeting of the Beijing Software Craftsmanship Group on 2013/02/28.
http://www.meetup.com/BeijingSoftwareCraftsmanship/events/103481622
Please refer to the code demo'ed live:
https://github.com/rhcarvalho/talks/tree/master/2013/02-28%20Python%20in%2015%20minutes/code
Beginning nxt programming_workshop in Computer education robotics whoevgjvvvv...OhSoAwesomeGirl
It's all about ROBOTICS. so it can be helpful. get me? hahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahahbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbdon't think that i am stupid whahahahahahahahaha
Keynote presentation at PPIG 2015, Bournemouth 2015-07-17.
Presenting experiences of running workshops for programmers to learn new programming languages, and programmers to improve knowledge of programming languages they already use, with an emphasis and feeding ideas and questions into the psychology of programming community.
A draft slideshow on best practices for running a webinar. Note that I break all the rules for slideshows by text-loading!! But, alas, seemed necessary here! Use the notes as well!
Becoming a Software Craftsman takes a lot of practice. Using Code Katas in Coding Dojos is an excellent way to get that practice in a low stress fun way. Discover how to do that.
How to deliver the right software (Specification by example)Asier Barrenetxea
Talk about Specification by Example. What's the problems it tries to tackle and how to solve them.
I gave this talk at Thoughtworks on a "lunch and learn" meeting for the company.
This is a new version of my previous presentation about "Specification by example"
https://www.slideshare.net/AsierBarrenetxea1/spec-byexample-v2
Mob Programming : How To Never Stop Producing Value - Scrum Gathering Talk 03...André De Sousa
Discover this software engineering practice and what it can bring to your organization.
The idea behind this talk was to show how we used to work before Agile. How Agile is a good way of working but not sufficient according to some contexts and what this fairly new Mob Programming concept is.
Development is not so efficient without collaboration with team members. That's the fact. But why not to go further and to add a bit of AI to the teams collaboration?
Like checking what's the last commit or the load of production server or whatever you decide to have at hand. So, let me introduce Hubot - your company's robot. Install him in your company to dramatically improve and reduce employee efficiency.
It's told that if you don't like a cat you just don't know how to cook it. It's the same if we're talking about estimating and prioritizing user stories. This time we will back to unfinished the subject about bad examples of user stories and the stuff which one don't know how to treat as the user story. We will talk about which role, when and how work with user story and cover the main principles of user stories (no)estimations.
Subjects:
- What is and what is not a user story?
- Who, when and why — roles and ceremonies.
- To estimate or not to estimate?
- Case studies/practice
Doing agile by book is ok for the beginning. However, it's not enough. You should continue to learn by gaining new knowledge during the project. User stories and the way you're working with them are the bricks which form the foundation the better experience.
User Stories could be Your best partner and support in project, yet them could become your worst nightmare. Where and how User Stories help? When and how User Stories could become a large burden?
Next time we will dig into user story deeper. How it differs from requirements, use cases or test cases? From what parts it consists and why?
Common misunderstandings of vision and how to predict and avoid them.
User stories vs MMFs vs requirements - make them work for you, not against you.
How all this stuff fit together?
Presentation about different approaches both common — Capped T & M or Incremental Delivery — and rare, e.g. Cost Targeted, and share our experience about what's is going on in real life.
We're talking about different ways and frameworks and methodologies on how to make a project successful.
Well, let's stop talking and try two different approaches - plan-driven and change-driven. Let's do it with a some practical tasks and then discuss what happens and why in the good company.
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.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
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.
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
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.
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
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.
2. What is Coding Dojo?
A Coding Dojo is a meeting
where a bunch of coders get together
to work on a programming challenge.
It is a gathering
of programmers who come together
to have fun and learn while coding.
3. Formats of Coding Dojos
Formats:
● Randori
● Prepared Kata
● Working in Pairs
● Invent your own style!
4. Randori
In brief:
● The facilitator introduces the programming kata to solve.
● The facilitator invites a partner to join him at the keyboard. The
facilitator writes a first test, makes sure it runs red and invites
someone else from the group to take his place.
● Each pair works on the problem for 5-10 minutes, the facilitator
then makes sure that one person in the pair is switched out with
someone in the audience.
● After about 45-60 minutes of working on the problem, call a break
and review what’s happened.
● After the review, the group can work on another kata, try the
same problem again or use another exercise form.
5. Prepared Kata
In brief:
● The other name — Parisian
● Focuses on coding in front of others, most often something from
scratch, in a very short amount of time (1 to 1.5 hours).
● A presenter shows how to solve the challenge from scratch, using
TDD and BabySteps.
● While the presenter creates their code he is constantly speaking to
the audience letting them know exactly what they are doing and
why.
● Any member of the audience is allowed to interrupt the presenter
and ask them why they are coding in a certain pattern.
6. Working in Pairs
In brief:
● The group forms pairs of programmers.
● Pairs can choose their own programming language and
environment to craft a solution in.
● All the pairs work in the fashion the group has agreed to work for
30-60 minutes or more.
● After the coding session the pairs perform a short presentation on
their code base, showing the progress and design they have made.
● Re-mixing of pairs or of pair's members can be applied so every
person will work with other pair's code or programming language.
9. Pair
Pair of two working and talking at the PC in
order to complete the Kata.
Pair consists of a person who produces the
code — pilot, and a person who talks —
navigator.
10. Pair
Responsibilities:
● The pilot produces code.
● The navigator helps the pilot to understand what has been done
during previous iterations and what the pair should do now.
● The navigator tells what the pair should do now.
11. Sensei
A person who interferes and facilitates the
Kata by helping with advice when the pair is
stuck or arguing without any progress in code.
Must not speak in any other case.
Responsible to facilitate attendees to produce
code according to Working Agreements (WA)
and the goal of the Kata.
12. Sensei
Responsibilities:
● Introduces a programming language, framework or IDE before the
beginning.
● Introduces a Kata.
● Performs in the first iteration as a navigator.
● Working code by the end of the iteration.
● Some progress on fulfilling the Kata during the iteration.
● ‘Green’ tests by the end of the iteration, otherwise the next
iteration begins from making tests ‘green’.
● Tests are written during the iteration.
● Tests are good and don’t repeat the code itself just to pass.
● No long discussions without the code.
13. Moderator
Responsibilities:
● Helps attendees to form Working Agreements.
● Facilitates attendees to obey the principles.
● Controls the time-boxing.
● Can make a break in case he or she observes some kind of
misunderstanding or discomfort and ask questions in order to find
out and remove any impediments.
● Conducts the retrospective.
15. The Main Rule
At the Dojo
one can't discuss a form without code,
and one can't show code without tests.
16. Working on Kata
At the Dojo one can't discuss a form without
code, and one can't show code without tests.
So the person which is not on the stage can
give an idea, but can not fall into discussion
with the pair.
If he or she wants to implement the idea
mentioned, he or she can enter the pair at the
next iteration.
17. Timeboxing
Pair works during a fixed period of time.
It can be any period of time which attendees
have agreed to use. It can vary between 5 and
15 minutes.
The 10 min period seems to be optimal,
because it’s enough time to briefly discuss
the algorithm and to implement it.
18. Switching
The person who enters into the coding
timebox begins to act as a pilot.
The person who was the pilot during the
previous iteration switches his position to the
navigator, the one who talks.
The first iteration begins with the Sensei in
the position of the navigator.
19. Switching
The switching may be ordered so each of the
attendees will participate, or the ordered
switching can be interrupted if an attendee
wants to implement his or her idea right now.
The switching principle should be defined
within the Dojo’s Working Agreements.
20. Respect
Attendees of the Coding Dojo respect each
other and their willingness to learn so that:
● Ring tones of mobile phones are off; a person can answer a call,
but he or she must leave the room to answer it.
● Only the pair at the PC can talk loud.
● All discussions away from the PC must be made in the way not to
spoil the pair’s deep diving into the Kata.
● Sensei can interfere and talk loud by his/her own decision.
21. Respect
Attendees of the Coding Dojo respect each
other and their willingness to learn so that:
● If a person wants to ask or suggest something to the pair, he or
she should raise the hand and wait for the moderator to allow him
or her to talk.
● Only one person from the observers can talk at a time.
● It’s the pair who must decide how to proceed after receiving an
advise or hint from an observer.
22. Prerequisites
In order to succeed you should think about:
● Hardware
● Software
● Kata
● Working agreements
● Snacks and drinks
23. Hardware
Minimum setup:
● PC where the Kata should be solved.
● Big screen and the projector to show the same picture that is on
the PC screen.
● Whiteboard or flip chart to pinpoint the Kata rules and working
agreements attendees agreed to obey.
24. Hardware
Recommended setup:
● PC where the Kata should be solved.
● 104-key keyboard so the pilot will not be distracted from coding
with unfamiliar keyboard.
● Big external monitor for the PC.
● Big screen and the projector to show the same picture that is on
the PC screen.
● Whiteboard or flip chart to pinpoint the Kata rules and working
agreements attendees agreed to obey.
● Whiteboard or flip chart for the working pair to share their
thoughts.
Additionally it’ll be great to have a Wi-Fi network and enough seats and
power outlets available for all attendees.
25. Software
Introduction into the tools that will be used
should be made beforehand, so that any
attendee has a sufficient amount of
knowledge to participate in the Dojo:
● Programming language — links to the language reference printed
or opened in the browser on PC.
● Framework — links to the framework reference printed or opened
in the browser on PC.
● IDE — printed version of most used keyboard shortcuts to make
the work comfortable.
26. Kata
The task that should be solved during the
Coding Dojo.
Must be prepared beforehand, but presented
by the Sensei just before the beginning of the
Dojo, but not earlier.
27. Working agreements
Before the start the attendees with the help
of moderator have to decide what set of rules
to obey during the Coding Dojo.
28. Working agreements
Example:
● Length of the timebox.
● Application of unit tests.
● Application of test-first approach.
● Switching: by person’s will or by some order.
● Sensei can change the Kata during the Dojo by adding additional
tasks to complete, or he can not change the Kata.
● Sensei can ask the pair to leave the PC before the time ends, or
he can't.
● …
30. Tips & Tricks
Use them as you like:
● Time-box can be visualized by a hourglass.
● The moderator can allow a person to talk by using ‘The Magic
Wand’. A fairy wand suits well.
● When smelly code is detected the Sensei can wear a gas mask or
signal the working pair about this fact in other way.
● You can use any kind of the task as a Kata. For example, an open
issue/bug from an OSS project can be used as a Kata. However,
using the classic Katas considered to be better to the audience
unfamiliar with the Coding Dojo.
31. Tips & Tricks
Use them as you like:
● In order to return to the code previously deleted or changed by
the other pair faster, the well-known version control system like
Subversion or Git can be used.
● Each iteration should be committed into some VCS so the flow of
fulfilling the Kata can be tracked and analyzed in the past.
● The code can be commented or a file with thoughts to be
developed next can be used (ReadMe Driven Development) in
order to share thoughts of the current pair to the next one.
32. Further Reading
● Coding Dojo
● Code Kata by Dave Thomas
● The Coding Dojo by Joe Wright
● How to start a Coding Dojo by Johannes Brodwall
● Real time coding competition with Extreme Startup by
Johannes Brodwall
● Cyber-Dojo by Jon Jagger
● We Need Realistic Coding Dojos by Zsolt Fabók
34. Contacts
Vladimir Tarasow
About: http://about.me/netrat
E-mail: netrat@netrat.eu
35. This work is licensed under the Creative Commons Attribution-
NonCommercial-ShareAlike 3.0 Unported License. To view a copy of this
license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/.