Coding Dojo

Edit on Gitlab

2007Aug01SPDojo

Participants: AlexandreFreire , BrunoGola , DaniloSato , EduardoSouza , HugoCorbucci , IgorSugupira , JulianMonteiro , KellyBraghetto , MarcioSantos , MarianaBravo , RodrigoPimentel

Scribe: MarianaBravo

Kata: Bowling in Python ( KataBowling )

Schedule

: 20:00 ~ 20:20 Introduction to the Dojo

A few participants came for the first time, so we started with a brief introduction to the Dojo.

20:20 ~ 21:40 Coding Session

After voting for the Bowling problem, we began coding the problem in Python with Randori style. We had dificulties in the begining because we didn’t understand the problem completely before starting to solve it. Halfway through the meeting we stopped coding and discussed parts of the problem that we hadn’t understood. Also, during the meeting, the group discussed two approaches to the problem without agreeing to stick to one of them. The pair up front decided which way to go next. We didn’t finish the problem, but the portion developed can be downloaded at groups.google.com/group/dojo_sp/files.

2007Aug08SPDojo

Participants: AlexandreFreire , BrunoGola , DanielCordeiro , DaniloSato , FabricioSousa , FernandoFreire , GiulianoMega , HugoCorbucci , IgorSugupira , JacquelineMarchetti , JulianMonteiro , KellyBraghetto , MarianaBravo , PauloCheque , RafaelBarroso , RodrigoPimentel

Scribe: HugoCorbucci

Kata: Bowling in Python ( KataBowling )

Schedule

: 20:00 ~ 20:15 Presentation of the problem to new members &
Creativity card

A creativity card was picked and read then the problem was explained. There were three new members and the score rules were not clear to old members either so we spent some time discussing the rules.

2007Aug15SPDojo

**Participants:** [DaniloSato](/people/DaniloSato) ,

FabricioSousa , HugoCorbucci , JacquelineMarchetti , JulianMonteiro , MarcioSantos , MarianaBravo , PauloCheque and RafaelBarroso

Scribe: DaniloSato

Kata: Poker Hands in Python (an slightly easier version of KataTexasHoldEm )

Schedule

: 20:00 ~ 20:20 Discussion of the Kata

The problem was already chosen during the week, so the group discussed a little about the Poker rules and briefly discussed the approach to solve it.

20:20 ~ 21:50 Coding Session

We decided to tackle this problem in a Randori style, coding in Python. We also decided to avoid an object-oriented approach, at least in the beginning. As a learning exercise, we wanted to see it asking for the objects instead of designing a model before starting to code. As the last time we tried to solve the KataBowling , we started defining an acceptance level test, and that hasn’t helped us evolve the code in small steps. Once we decided to write smaller tests (for parsing a card, comparing a card, etc.) the session started to improve. Inspite of that, we didn’t have time to finish the problem. The partial solution is available at groups.google.com/group/dojo_sp/files.

2007Aug22SPDojo

**Participants:** [DaniloSato](/people/DaniloSato) , DeiseAoki ,

EduardoKatayama , FabricioSousa , HugoCorbucci , JacquelineMarchetti , JulianMonteiro , MarianaBravo , PauloCheque , RafaelBarroso , RicardoAbe and ThiagoColucci

Scribe: DaniloSato

Kata: Poker Hands in Python (an slightly easier version of KataTexasHoldEm )

Schedule

: 20:00 ~ 20:15 Dojo Introduction

Since we had four new members, we decided to go quickly through our Dojo Introduction slides.

20:15 ~ 20:20 Discussion of the Kata

The problem was already attacked in the last meeting, so we discussed a little some different implementation approaches to rank different hands. We decided to calculate the rank by sorting the cards, multiplying each card value by a power of 15 (based on the sorting order) and, for each type of hand, give greater powers of 15. This way we would be able to compare two hand’s by their ranks. An example (already sorted): 2H 4D 7S 8C 8H => 2*15**0 + 4*15**1 + 7*15**2 + 8*15**3 + 8*15**4 + 8*15**5 (the 5th power stands for the pair). If the hand had two pairs, the lower pair would have the 5th power and the higher pair would have the 6th power of 15 and so on…

2007Aug29SPDojo

**Participants:** AlexandreFreire , BrenoFranco , DeiseAoki ,

EduardoKatayama , FabricioSousa , HugoCorbucci , HugoBarauna , JacquelineMarchetti , JoseDeDeus , JulianMonteiro , MarianaBravo , PauloCheque , RafaelBarroso , RicardoAbe , RodrigoFlores , and ThiagoColucci

Scribe: MarianaBravo

Kata: KataMinesweeper in Python (acm.uva.es/p/v101/10189.html)

Schedule

: 20:00 ~ 20:15 Dojo Introduction

Again we had four new members, and so we went quickly through our Dojo Introduction slides.

20:15 ~ 20:20 Description and Discussion of the Problem

We read the problem, which seemed fairly simple to us. We discussed a few approaches to solving it, such as “for each square count the number of bombs around it” and “for each bomb, increment the counter on the squares around it”. We also made a small to-do list with steps that had to be done, so we wouldn’t get lost. Then we voted for one of the approaches and started coding.

2007Dec05SPDojo

**Participants:** BrenoFranco , [DaniloSato](/people/DaniloSato) ,

FabricioSousa , HugoCorbucci , PauloCheque , ThiagoColluci and Yoshi

Scribe: DaniloSato

Kata: A simple Rails application

Schedule

: 20:15 ~ 22:00 Presentation and Coding Session

This session was different than usual. DaniloSato would be presenting a session on BDD with Rspec and Rails in a local Rails event (Rio On Rails) on the next saturday. He decided to present a demo version of his lecture to gather feedback from the Dojo participants. He presented the concept of Behaviour-Driven Development and developed a simple Rails application. The application allowed participants to see the conference program, as well as voting on each lecture (either giving a positive or negative feedback, digg-style). The slides (in Portuguese) and the code are available at www.dtsato.com/blog/default/?page=studying

2007Dec12SPDojo

**Participants:** [DaniloSato](/people/DaniloSato) , CarlosVillela ,

CharlotteChang , FabricioSousa , FernandoMeyer , Guilherme, HugoCorbucci , MarianaBravo and MarioHCT

Scribe: DaniloSato

Kata: Poker Hands (acm.uva.es/p/v103/10315.html) in Ruby

Schedule

: 20:15 ~ 20:30 Choosing and Discussing the Problem

In the beggining of this session we had a few people in the room, so we decided to revisit an already solved problem (Poker Hands), but this time in Ruby. The discussion turned out to be short, since we already had a strategy for solving the problem. One interesting thing to notice is that Hugo came up with an easier way to calculate a Hand’s rank, using hexadecimal values. So, a hand with ‘2H 5S 7C 8S JC’ would have a rank of 0xB8752, which would made our tests easier to write.

2007July12SPDojo

**Participants:** DanielCordeiro , [DaniloSato](/people/DaniloSato) ,

GiulianoMega , HugoCorbucci , JulianMonteiro , KellyBraghetto , MarianaBravo , PauloCheque e RodrigoPimentel

Scribe: DaniloSato

Food: DaniloSato

Kata: Karate Chop (5 binary chop implementations) in Ruby (codekata.pragprog.com/2007/01/kata_two_karate.html)

Schedule

: 20:15 ~ 20:30 Introduction

DaniloSato presented the Dojo concept, principles and rules. Slides available at (groups.google.com/group/dojo_sp/files)

20:30 ~ 20:45 Discussions and Affinity Map

Group discussion about personal motivations and expectations from Dojo. Results were gathered in index cards and placed in an affinity map, available at (www.flickr.com/photos/dtsato/795041697)

2007July19SPDojo

**Participants:** DanielCordeiro , [DaniloSato](/people/DaniloSato) ,

EduardoSousa , GiulianoMega , GuilhermeSilveira , HugoCorbucci , JulianMonteiro , KellyBraghetto , MarianaBravo , PauloCheque , RafaelBarroso e RodrigoPimentel

Scribe: DaniloSato

Food: JulianMonteiro

Kata: Roman Numerals in Python (www.rubyquiz.com/quiz22.html)

Schedule

: 20:25 ~ 20:35 Introduction of new participants and choosing
kata/programming language

20:35 ~ 21:15 Coding Session I

Code TDD’ed in Randori style, switching pairs every 7 minutes. In the beggining, the participants had a feeling of competition and rushed to code and finish the problem. However, the moderator tried to slow down the pace and reminded the group that the dojo is a learning experience and that the discussions and insights are much more valuable than finishing the problem itself. Some interesting discussions about TDD and Refactoring took place while the code was developed. Some photos were taken and are available at www.flickr.com/photos/dtsato/857083962/

2007July25SPDojo

**Participants:** [DaniloSato](/people/DaniloSato) , GiulianoMega ,

JulianMonteiro , MarianaBravo e RodrigoPimentel

Scribe: DaniloSato

Food: GiulianoMega

Kata: Roman Numerals in Ruby (www.rubyquiz.com/quiz22.html)

Schedule

: 20:30 ~ 21:40 Coding Session

Code TDD’ed in Randori style, switching pairs every 7 minutes. We decided to work on the same problem as last week to get used to the Randori style. The format worked better this time. However, we struggled a lot with language issues in the beggining (dealing with Strings, mostly). Due to the smaller number of participants, the pair-switching flow was smoother and it felt better. In the end, the code looked cleaner than last week. The complete code can be found at (groups.google.com/group/dojo_sp/files)

2007July26SPDojo

**Participants:** DanielCordeiro , [DaniloSato](/people/DaniloSato) ,

HugoCorbucci , KellyBraghetto , MarianaBravo and PauloCheque

Scribe: MarianaBravo

Food: HugoCorbucci

Kata: Roman Numerals in Python (www.rubyquiz.com/quiz22.html)

Schedule

: 20:00 ~ 21:40 Coding Session

Based on the code written on the 19-Jul-2007 meeting we finished the Roman Numerals problem. We used TDD and Randori, switching pairs every 7 minutes. Coding flowed more easily this time, and everyone was satisfied with the result, which can be downloaded at groups.google.com/group/dojo_sp/files

2007Nov07SPDojo

**Participants:** BrenoFranco , [DaniloSato](/people/DaniloSato) ,

FabricioSousa , HugoCorbucci , JacquelineMarchetti , MarianaBravo , PauloCheque and Yoshi

Scribe: DaniloSato

Kata: Tempesta Challenge in Java

Schedule

: 20:15 ~ 20:30 Choosing and Discussing the Problem

The Tempesta Challenge was a game developed some years ago by GuilhermeSilveira and PauloSilveira . The goal is to program a robot that has to battle other participant’s robots in a circular arena. The last man standing is the winner. We decided to run the Challenge in one of our upcoming meetings, and this time we’ve chosen to implement a simple robot to understand the game API and to play with it, preparing our participants for the ultimate challenge! :-)

2007Nov14SPDojo

**Participants:** [DaniloSato](/people/DaniloSato) ,

FabricioSousa ,André, MarianaBravo , HugoCorbucci , JacquelineMarchet ,Breno and Danilo B.

Scribe: FabricioSousa

Randori: To and Fro in ruby

CreativeWhackPack Card: See the Positive

Schedule

: 20:20 ~ 20:25 - Introduction

Two New members attended to this dojo, Welcome Danilo B. and André. To introduce this members to dojo, we took the 5 minutes intro.

20:25 ~ 20:33 - Choosing the Problem

As usually, five different problems were available for choice. “Little Bishops”, “To and Fro”, “Reversi” and “Go”. In the past meetings, Little Bishops got none or just one vote, since it’s lonely defender is not attending dojo anymore we decide to put the problem alway from now on. Our choice were To and Fro, a simple cryptographic method that given a sentence and a number it returns a codified message by changing the position of the characters based in matrix and the given number.

2007Oct03SPDojo

**Participants:** BrenoFranco , DanielCordeiro ,

DaniloSato , RodrigoPimentel and ThiagoColucci

Scribe: DaniloSato

Kata: “Splitting the Loot” (RubyQuiz ) in Ruby (www.rubyquiz.com/quiz65.html)

Schedule

: 20:15 ~ 20:30 Discussing the Problem

The problem was the same as last meeting’s. Last time we were not able to finish, so we decided to solve it again, as a PreparedKata . The approach this time was to use a brute force backtracking algorithm.

20:30 ~ 22:00 Coding Session

2007Oct10SPDojo

**Participants:** BrenoFranco , [DaniloSato](/people/DaniloSato) ,

FabricioSousa , HugoCorbucci , JacquelineMarchetti , MarianaBravo , RodrigoKumpera , ThiagoColucci and Yoshi

Scribe: DaniloSato

Kata: Sokoban in Python (www.rubyquiz.com/quiz5.html)

Schedule

: 20:15 ~ 20:30 Choosing and Discussing the Problem

After we decided to solve the Sokoban problem, we started discussing about it. We should not focus on an algorithm to actually solve a given level, but actually build a command interpreter and the game engine to simulate a Sokoban game. We agreed on the conventions for the symbols used to represent each item in a Sokoban level such as : the man, a box, a storage, an empty floor, and walls.

2007Oct17SPDojo

**Participants:** BrenoFranco , [DaniloSato](/people/DaniloSato) ,

FabricioSousa , HugoCorbucci , JacquelineMarchetti , MarianaBravo , PauloCheque , ThiagoColucci and Yoshi

Scribe: DaniloSato

Kata: KataBankOCR in Ruby / Rspec

Schedule

: 20:15 ~ 20:30 Choosing and Discussing the Problem

We decided to switch the programming language for a while (from Python to Ruby), so we chose a problem that would not demand too much algorithm background. The KataBanOCR seemed the right choice, since we could tackle it step by step and learn Ruby on our way through these steps.

2007Oct24SPDojo

**Participants:** BrenoFranco , [DaniloSato](/people/DaniloSato) ,

FabricioSousa , JacquelineMarchetti , ThiagoColucci and Yoshi

Scribe: DaniloSato

Kata: Grid Folding (www.rubyquiz.com/quiz63.html)

Schedule

: 20:15 ~ 20:20 Choosing the Problem

This time the problem was chosen quickly. We decided to solve the Grid Folding problem from Ruby Quiz.

20:20 ~ 22:00 Discussing the Problem

Instead of trying to simulate the paper folding using Arrays, we decided to discuss different approaches to the problem. It was quite interesting to see how other people think and different strategies for tackling the problem. Due to the rich discussion, we didn’t have time to start coding. There seems to be interesting maths under this problem. In fact, there are a lot of studies in the area (origami math). Another interesting aspect of the metting was how the participants self-organized to discuss the problem: in the beggining, I was exploring the problem by simulating some scenarios on the black board. After a while, some participants decided to step up and try different approaches in the black board. In the end, we were all standing up, discussing different things in parallel, mostly working in pairs.

2007Oct31SPDojo

**Participants:** BrenoFranco , [DaniloSato](/people/DaniloSato) ,

FabricioSousa , JacquelineMarchetti , PauloCheque , ThiagoColucci and Yoshi

Scribe: DaniloSato

Kata: The Blocks Problem (acm.uva.es/p/v1/101.html) in Ruby / Rspec

Schedule

: 20:15 ~ 20:30 Choosing and Discussing the Problem

We’ve chosen to solve this uva simulation problem in an object-oriented design. We discussed a little about some of the behaviour we wanted to put in a Block, like: placing one on top of another, resetting it to its original position, and retrieving the top of a pile of blocks.

2007Sep05SPDojo

**Participants:** [DaniloSato](/people/DaniloSato) ,

FabricioSousa , HugoCorbucci , JacquelineMarchetti , JulianMonteiro , LucianoRamalho , MarianaBravo , NateAune , RodrigoPimentel and ThiagoColucci

Scribe: DaniloSato

Kata: “Mesa da Sra. Montagny” (in Portuguese) in Python (br.spoj.pl/problems/MESA/)

Schedule

: 20:00 ~ 20:20 Discussion of the Kata

This time DaniloSato and MarianaBravo presented a PreparedKata . In the beginning, the problem was presented and the group discussed an overall approach to solve it. The problem involved creating and bi-coloring a graph with n People nodes and m Friendship edges.

2007Sep12SPDojo

**Participants:** BrenoFranco , [DaniloSato](/people/DaniloSato) ,

FernandoRaganhan , HugoCorbucci , JacquelineMarchetti , JulianMonteiro , MarianaBravo , RodrigoFlores , RodrigoPimentel and ThiagoColucci

Scribe: DaniloSato

Kata: “Rede Ótica” (in Portuguese) in Python (br.spoj.pl/problems/REDOTICA/)

Schedule

: 20:00 ~ 20:30 Discussion and Choosing the Problem

Some problems were chosen by e-mail as potential challenges to be solved in this meeting. We voted and chosen to solve another graph problem. We had to find a minimum spanning tree in a graph with n nodes and m edges. We discussed a little about the approach and different algorithms and decided to solve it using the Kruskal algorithm. The idea is to put each node in a separate set, sort the edges and for each edge make the union of its nodes’ sets if they were not yet reached by the partial spanning tree.

2007Sep19GRUG

Participants: Apologies, I forgot to make a list. It was about 10 - 12 people, around half of whom hadn’t come to a GRUG meeting before.

Scribe: EmilyBache

Kata: KataMinesweeper in Ruby on a Mac with TextMate and RSpec

Schedule

: 18:00 ~ 18:30 informal welcome, explanations and setting
up environment. We had already agreed before the meeting which Kata
we would do, and that we would be using RSpec, through discussion on
the mailing list.

18:30 ~ 20:30 Coding Session

2007Sep19SPDojo

**Participants:** BrenoFranco , [DaniloSato](/people/DaniloSato) ,

FabricioSousa , HugoBarauna , HugoCorbucci , JacquelineMarchetti , JulianMonteiro , LeonardoRochael , MarianaBravo , PauloCheque , RodrigoFlores , RodrigoPimentel , ThiagoColucci and Yoshi

Scribe: DaniloSato

Kata: “Saldo de Gols” (in Portuguese) in Python (br.spoj.pl/problems/SALDO/)

Schedule

: 20:00 ~ 20:30 Discussion and Choosing the Problem

Some problems were chosen by e-mail as potential challenges to be solved in this meeting. We decided to solve another algorithmic problem. We had to find a subsequence with maximum sum. We discussed a little about the approaches (the straight-forward O(n^2) version and some sketches of a linear version). The idea is to store two sums: the current sum and the current maximum sum. If the current sum is better than the maximum sum, it becomes the maximum sum. If the current sum is negative, we can discard it and start a new sum from zero.

2007Sep26SPDojo

**Participants:** BrenoFranco , [DaniloSato](/people/DaniloSato) ,

FabricioSousa , FernandoMeyer , FernandoRaganhan , HugoCorbucci , MarianaBravo , PauloSilveira , RodrigoFlores , RodrigoKumpera , ThiagoColucci and Yoshi

Scribe: DaniloSato

Kata: “Splitting the Loot” (RubyQuiz ) in Python (www.rubyquiz.com/quiz65.html)

Schedule

: 20:20 ~ 20:50 Choosing and Discussing the Problem

Today we had some problems with the environment and spend some time configuring it. After that, we decided to vote which problem we would solve. We decided to solve a problem from RubyQuiz , called “Splitting the Loot”. Since this is an NP-complete problem, we spend more time discussing the different approaches to solve it.

2008Abr23SPDojo

**Participants:** [HugoCorbucci](/people/HugoCorbucci) ,

MarianaBravo , FabricioSousa , CesarSeragiotto , MartinFabichak , BrenoFranco , Yoshi and HeltonRosa

Scribe: MarianaBravo

Randori: “The Skyline Problem” in C (acm.uva.es/p/v1/105.html)

Schedule

: 20:00 ~ 21:00 Discussing the Problem

The problem was presented by one of the participants, who proposed an aditional challenge of developing an algorithm that would run in time O(n lg n). The other participants were interested in the challenge, and we discussed a few approaches to the problem. For each approach, we tried to understand if it would meet the additional restriction and why. Some very interesting suggestions came up and we also learned what that restriction really means. After discussing the approaches, we settled on trying to implement one of them, based on divide and conquer strategies.

2008Dez17DojoSEA

Presentes: Bruno (participou da metade) Tulio Carol (nгo programou,

participou de poucas partes) Adam Pedro Paulo (Como й mesmo o nome do amigo do Tulio?) Funke Quem mais?


Problema: Amigo oculto (http: // rubyquiz.com / quiz2.html) programado em Java O cуdigo ainda serб disponibilizado no GitHub


Programamos alguns casos de teste simples como lista vazia, lista unitбria, lista com 2 e 3 pessoas, entгo comeзamos a testar a aleatoriedade do sorteio e chegamos ao fim.

2008Fev26SPDojo

**Participants:** [FabricioSousa](/FabricioSousa) ,

HugoCorbucci , MarianaBravo , RodrigoFlores and ?

Scribe: ? (Hugo Corbucci)

Kata: The Settlers of Catan (acm.uva.es/problemset/v5/539.html) in Ruby

Schedule

: 20:15 ~ 20:30 Choosing and Discussing the Problem (as Usual)

20:30 ~ 22:00 Coding Session

The problem started as a RandoriKata with FabricioSousa presenting the start of his solution and the audience involving on it later on, switching every 7 minutes as usual. The problem evolved until we reached a test where the greedy solution wouldn’t solve anymore. Then we stopped coding to explain what was the problem (longest path search) and why it is a NP-complete problem. This leaded to the discussion about what was the brute force solution to it and MarianaBravo wrote down a pseudocode on the board with the audience that seemed to solve the problem. We didn’t have time to code it. However the code produced is available at groups.google.com/group/dojo_sp/files.

2008Jan08SPDojo

**Participants:** BrenoFranco , BrunoGola ,

DaniloSato , FabricioSousa , HugoCorbucci , MarianaBravo , RodrigoFlores and RodrigoPimentel

Scribe: DaniloSato

Kata: Deciding victory in Go (acm.uva.es/p/v8/852.html) in Ruby

Schedule

: 20:15 ~ 20:30 Choosing and Discussing the Problem (as Usual)

20:30 ~ 22:00 Coding Session

The problem was solved in Ruby with Rspec in a RandoriKata style, switching pairs every 7 minutes. We thought that the problem was solved by the end of the session, but when running an integration test (with the sample input from the problem description page) it didn’t work. We had no time during the meeting to investigate further. Some decided to solve it again and present it as a PreparedKata in a future session. The code is available at groups.google.com/group/dojo_sp/files.

2008Jan15SPDojo

**Participants:** BrunoGola , [DaniloSato](/people/DaniloSato) ,

HugoCorbucci , JacquelineMarchetti , LeandroLameiro , MarianaBravo , MarioHCT , RodrigoFlores and RodrigoPimentel

Scribe: DaniloSato

Kata: Fuzzy Time (www.rubyquiz.com/quiz99.html) in Ruby

Schedule

: 20:15 ~ 20:30 Choosing and Discussing the Problem (as Usual)

20:30 ~ 22:15 Coding Session

The problem was solved in Ruby with Rspec in a RandoriKata style, switching pairs every 7 minutes. One of the main themes of this meeting was the use of mocks (and rspec’s mocking framework). Many people didn’t know about this concept and it was very helpful to test the collaboration of our object with Ruby’s time and random methods. The problem was solved, as the three main requirements of the problem were implemented. The code is available at groups.google.com/group/dojo_sp/files.

2008Mar05SPDojo

**Participants:** [FabricioSousa](/FabricioSousa) ,

HugoCorbucci , MarianaBravo , ThiagoColucci , MartinFabichak , LucianoRamalho , JacquelineMarchetti and maybe others

Scribe: ? ( HugoCorbucci )

Kata: Roman Numerals (rubyquiz.com/quiz22.html) in Lua

Schedule

: 20:00 ~ 21:00 Choosing the Language and Setting up the environment

21:00 ~ 22:15 Coding Session

The problem was solved in Lua with lunit in a RandoriKata style, switching pairs every 7 minutes. Since nobody had any previous experience with Lua, it was a really painful experience. We struggled mostly with the language, the API and unit testing. We hardly had time to really implement the hard part of the problem. Just some shy start of it. The code is available at groups.google.com/group/dojo_sp/files.

2008Mar12SPDojo

**Participants:** [HugoCorbucci](/people/HugoCorbucci) ,

MarianaBravo , FabricioSousa , AdolfoRodrigues , MartinFabichak , LucianoPacheco , ThiagoColucci and aFriendOfMartin

Scribe: ? ( HugoCorbucci )

Kata: Expressions (www.spoj.pl/problems/EXPRESS/) in Smalltalk

Schedule

: 20:15 ~ 20:30 Choosing and Discussing the Problem (as Usual)

20:30 ~ 22:15 Coding Session

The problem was solved in Smalltalk with SUnit using Squeak. It worked in a RandoriKata style, switching pairs every 7 minutes. The main discussion was around how operations could be represented alike in pre, post and infix notation. We discussed how to build a tree operation and what was the differnce between prefix notation and postfix notation. Then it was easy to see it all involved building up a tree and making the right search on it. Spent the rest of the time coding the Tree in Smalltalk. The code is available at groups.google.com/group/dojo_sp/files but requires Squeak V3.9 to be run.

2008Mar19SPDojo

**Participants:** [HugoCorbucci](/people/HugoCorbucci) ,

MarianaBravo , FabricioSousa , AdolfoRodrigues , MartinFabichak ,JacquelineMarchetti

Scribe: FabricioSousa

Randori: CUnit - A C UnitTest module written by dojo people

Schedule

: 20:15 ~ 20:30 Choosing and Discussing the Problem (as Usual)

20:30 ~ 22:15 Coding Session

We create some basic functions such as assert_true and assert_equals using C. Testing the Unit with it’s own test was pretty nice, and the whole thing about double negation and boolean logic gave a certain problem at first. We ended the coding part of the session with such a good set of tools that we can keep building it as we need it on further sessions.

2008Mar26SPDojo

**Participants:** [HugoCorbucci](/people/HugoCorbucci) ,

MarianaBravo , FabricioSousa , AdolfoRodrigues , JacquelineMarchetti , ThiagoColucci , Luiz, Matheus, Claudivan, BrenoFranco , LeandroLameiro

Scribe: MarianaBravo

Randori: The blocks problem (acm.uva.es/p/v1/101.html) in C

Photos: Photos of this session and the previous one can be found at www.flickr.com/photos/22122356@N05/sets/72157604270236786/

Schedule (times are innacurate)

: 20:00 ~ 20:15 Introduction of new members and dojo presentation.
Choosing problem.

We’ll settle on C as a language for a while, because jumping between languages no one knows doesn’t get us anywhere. We’re also using, of course, our own developed C Unit Tests “framework”.

2009Abr1DojoSEA

\[Bruno e Carol\] Tentam resolver problema com linha a mais. Comeуaram

adicionando comentрrios. Tentam descobrir porque Щltima linha que deveria ser “#####” ж " “. Descobrem que ж um if que tem uma restriусo para bordas.

[Carol e Tulio] apagaram um if complicado que tinham escrito logo antes e nao impactou muito. acharam mais um defeitinho no cзdigo, a linha passada para imprimir a borda inferior estava errada. Comeуamos a entender o problema de novo…

2009Abr29DojoSEA

Ata do dojo 29/04/2009

comeзamos бs 17:40 !!!

Adam e Pedrгo Eles voltal ao ultimo problema encontrado no ъltimo dojo. Falta uma linha branca no final. Eles analisam o mйtodo getCrosswords da classe Puzzle. Eles discutem sobre o local onde os mйtodos imprimem as linhas. O Adam faz uma nova modificaзгo no mйtodo preencheBordaHorizontal

Pedro e Bruno Continuam a resoluзгo do problema. Pedro estб explicando ao Bruno em que ponto estгo. Estгo voltando ao ponto inicial. Vгo alterar o preencheCanto(). Agora, criaram o mйtodo preencheBordaHorizontal2 () para preencher a ъltima linha.

2009Fev11DojoSEA

Voltamos ao plano: Quadradсo (X) Brancos:

    Cantos (X)
    Meios 18 ciclos:

Numeracao: Arquivo:

[bruno e carol] corrigindo teste16 do branco nao passando, fizeram passar de forma tosca


[carol e paulo] Em discussсo coletiva, chegamos a um consenso sobre a soluусo: percorrer as bordas e, para cada branco, invocar um mжtodo recursivo de verificaусo da vizinhanуa branca. Carol e Paulo comeуaram Яs 17hs43. Ambos de camiseta branca. Estсo falando de branco a todo momento. Acho que ж isso. Nсo saquei direito o que tр rolando. Era X da Щltima vez que vim aqui. Agora virou tudo branco. Estсo tentando melhorar o teste16. Acabaram de quebrar o teste16. Melhor se tivessem deixado quieto. Aposto que vсo esquecer de commitar. Brunсo nсo tр se aguentando de vontade de falar. Tр dando uma fome…. Serр que pode comer banana no dojo? O teste tр quase passando. A barrinha do infinitest comeуa verde, continua verde, segue verde……. e aь fica vermelha. Uhhhhhhhhhhhh! O prзximo serei eu. Melhor prestar atenусo pra sacar logo o que tр rolando. Fizeram o mжtodo verificaVizinhos em Puzzle. Serр que o mжtodo recursivo que mencionei antes? Putz, o ar condicionado fica bem na cara do ateiro. Carol pediu pro Paulo a guiar. Acho que ela tр tсo perdida quanto eu. Paulo gaguejou. Ihhh. Virou zona. 17hs51. Vou nessa.

2009Fev18DojoSEA

Dojo-SEA - crosswords - 18/02/2009

Participantes: - Bruno - Tъlio - Fernando - Adam - Lucas - Cйlio (O pai dele bateu o carro e ele teve que ir socorrer, saiu аs 18:10) - Eduardo


Duplas:

  • Bruno e Tъlio:

      Decidiram eliminar a re-escrita que a ъltima dupla do dojo anterior havia feito e voltaram para o cуdigo que estava passando. Decidiram refatorar para deixar o cуdigo mais claro. Retiraram os replaces que trocavam as bordas por B e mudaram a condiзгo do if para ver se o elemento й igual a X e nгo a B como era anteriormente, alйm de limpar o cуdigo colocando algumas coisas para dentro do mйtodo de transformar em um array de char[][].
    
  • Tulio e Fernando:

2009Jan14DojoSEA

Participantes: Bruno, Paulo, Tъlio, Carol, Adam, Laurindo, Fernando,

Cйlio, Victor.


Problema: Continua Crossword - (http: // rubyquiz.com/ quiz10.html)


  • levantamento com post-its do que falta para terminar: Tabuleiro Simples (Linhas e Colunas), Numeraзгo, Leitura do arquivo e Cantos.
  • Estimamos em 5 ciclos (7 minutos) para finalizar o tabuleiro simples.

Bruno + Paulo: Completando casos de teste para verificar se as linhas do tabuleiro estгo sendo montadas corretamente. Iniciaram testes da montagem de colunas

2009Jan21DojoSEA

Participantes: Bruno, Túlio, Carol, Adam, Célio.

Problema: Continua Crossword - (http: // rubyquiz.com/ quiz10.html)


  • Estimamos os cartões que estavam faltando: Cantos: 12 ciclos, Numeração 9 ciclos, Leitura do arquivo 5 ciclos.

Bruno + Túlio: Conversaram a respeito da abordagem a ser utilizada para o refactoring de aplicação dos cantos. Decidiram criar um novo arquivo de teste para o pré-processamento dos espaços em branco.

Túlio + Carol: Fizeram o testDois com uma borda e um X no centro do crossword. Começaram modificando o método preProcessaGrid .

2009Jan28DojoSEA

------------------------------------------------------------------------

Problema: Continua Crossword - (http: // rubyquiz.com/ quiz10.html)


  • Adam e Tъlio: Pegaram o teste jб quebrado e comeзaram de onde haviam parado no dojo anterior. Modificaram o mйtodo para passar no teste. Em seguida fizeram outro teste com 3 ‘X’ seguidos em uma mesma coluna. Entre outros com mais de um ‘X’ na mesma linha.

  • Tъlio e Cйlio: Fizeram um teste com dois brancos no meio e a lуgica nгo estava considerando tal caso. E deixaram o teste quebrado!

2009Jan7DojoSEA

Participantes: Bruno, Cйlio, Fernando (Ouvinte), Laurindo, Alexandre

(Foi Embora 18:32), Paulo, Adam, Wesley e Carol.


Problema: Crossword - (http: // rubyquiz.com/ quiz10.html)


Adam + Wesley / Wesley + Laurindo / Laurindo + Paulo : Iniciando com o teste de leitura da Matriz. Rolaram umas discussхes sobre as decisхes iniciais e a estrutura de dados a ser considerada.

Paulo + Alexandre: Implementaram o teste do quadrado cheio de uma matriz 1x1;

2009Jul27DojoSEA

Problema do placar do boliche (Bruno mandou um PDF retirado de um artigo

cientнfico) Cуdigo em; http: // github.com/brunopedroso/bowling_dojo/tree/master

Bruno e Cйlio:

    Bruno explica a situaзгo para Cйlio. O Bruno explica a situaзгo para todos os integrantes do dojo. O bruno cria um novo arquivo chamado bowlingTest.rb
  • Tulio e Celio:

      Escrevem um teste com duas bolas.Criaram o metodo frame, que ja recebe as duas bolas de uma vez. apagaram o metodo throw, que representava uma unica bola. pequeno refactoring para criar um setup do teste, comecaram um teste do spare.
    
  • Tulio e Laurindo:

2009Jun10DojoSEA

bruno e tulio: tentaram por o ambiente de testes para funcionar

tulio e pedro: conseguiram fazer o rspec rodar, mas descobrimos q o exec nсo ж o que estavamos procurando

pedro e adam descobriram o system, e conseguiram fazer funcionar. Escreveram o gabarito.

adam e renan Adam pergunta pra galera sobre estratжgias sobre como iterar os arquivos passados por parРmetro. Depois comeуam a pesquisar os mжtodos da classe File do Ruby. Depois disso a dupla tenta fazer a iteraусo utilizando arrays.

2009Mai20DojoSEA

- O que fazer nesse dojo: Mudanзa de arquitura? Necessita ainda mais

refatoramento? Mudar o mйtodo desenhaCantoLinha e desenhaCanto?

Decisгo Unificar desenhaCanto com desenhaCantoLinha

Bruno e Vinнcius: Bruno comeзa a alterar o metodo desenha canto sob a supervisao do vinicius -> adicionam o metodo isBranco na primeira condicional. Modificam tambйm o desenhaCantoLinha Refatoram o desenha canto

Vinнcius e Eduardo: voltaram udo atras com cmd-zzzzzzzz… refizeram o refactoring que faz o desenhaCanto usar o isBranco

2009Mai21DojoSEA

2009Mar4DojoSEA

Dojo-SEA - 04/03

Cжlio e Lucas:

    Comeуaram. Tendo problemas para comentar um cзdigo, infinitest nсo se atualiza. Reiniciaram infinitest e funcionu. Criando novos testes: dois brancos e mais nada. Nсo passou de primeira, pois hр uma Щnica cerquilha no comeуo da Щltima linha. Encontraram bug no preencheBordaInferior. HЯ um espaуo a mais no comeуo (talvez um espaуo a menos nos demais). Estсo analizando getCrosswords(). Comeуaram a analisar o preencheLinhas() e acabou o tempo.

Lucas e Carol:

GothPy081007

We tackled this Kata at [GothPy](/dojo/GothPy) 2008-10-07. We split into

groups and came up with three solutions which are all elegant in different ways and employ different algorithms.

KataRomanNumeralsAsReadableAsWeCouldMakeIt

KataRomanNumeralsYetAnotherOne