Archive pour la catégorie ‘Training’

Hanoi Coding Dojo Session #7

Monday 30 May 2011

Written by Dương “Yang” ヤン Hà Nguyễn (cmpitg) and available on his weblog, here is the full text of the post:

Lire le reste de cet article »

Hanoi Coding Dojo Session 4

Wednesday 11 May 2011

Last Saturday (2011/05/07) at AUF/CNF center, Hanoi Coding Dojo session 4 was held sucessfully. Due to the former schedule of Hanoi Ubuntu release party, we had to shift our session from 2:00PM – 4:00PM to 1:00PM – 3:00PM. Compare to our previous sessions, fewer people came but it was still a great one!

Unlike usual, Serge did not prepare any Katas, leaving the room in a dead silence for a very long period of time (by that I mean for ages). Everyone was looking at each other with unspeakable feelings. Until Yang (cmpitg), breaking the freezing of fear, proposed a Kata for the session. The problem was named Prime Filter, with the idea of extracting prime numbers from an arbitrary list of integers. The full problem specification and source code can be found at Github[1].

After a short discussion, we decided to use the Prime Filter Kata as a Prepared Kata, presented by Yang, and Common Lisp[2] as the programming language. Common Lisp has an unusual syntax (using prefix notation) and different way of thinking compared to other popular programming languages, so each time Yang wrote some code, he had to state clearly about what he was doing and why he was doing that for everyone to understand. The Kata was being solved in more than an hour, leading to many interesting discussions.

Our first discussion was about solving a problem in BabySteps[3]. Normally, developers write a relatively “big” unit of code once at a time. On the contrary, Coding Dojo’s Kata requires you to write one small unit of code at a time. “One small unit of code” means just a few lines of code with very simple logic, solving a very simple problem. This is not a usual tendency of a developer, which often leads to confusion for newcomers. When thinking of baby steps instead of big ones, developers don’t know whether the way on which they are going would solve the problem. So should we “think big” first and “think small” latter or should we just “think small” and let it show us what goes right and what goes wrong? After a while discussing the question, we decided to use the latter method: think small and let the idea correct our solution. Why? Remember the purposes of Coding Dojo? The point is to learn as much as possible. The former way (aka “think big”) might help us solve the problem faster and easier, but the latter definitely helps us learn much better. The slower we go, the more we can see. The more we see, the more we learn. Not only is this important in theory but also it’s worth doing it in practice. You code would be much better if you take your time learning more about the problem, the solution and your code itself.

The second discussion was about code refactoring[3] as Yang did not do it properly. Whenever you refactor some piece of code, remember the vital point: change the face, not the heart. I.e. restructure the code, rename identifiers, encapsulate data, … but keep the semantics.

And lastly, we had a very interesting discussion about TDD[4] (aka. Test-driven Development) in Coding Dojo[5] and in practice. We had more understandings about TDD, its advantages and disavantages, its uses in practice, why its cost (money, time, …) is worthy. We had taken real world example into the discussion, including the development of Python, eXoPlatform, and OpenOffice.org. Ideas include:

  • TDD is time-consuming at the beginning of the project but time-effective when the project is already in progress.
  • TDD helps developers keep track of the exact features they want to develop. Remember, developers are usually not users, their standpoint is usually different from users’ standpoint. Hence, what they make is not always what users need.
  • TDD reduces the time spent on debugging a complex system since developers are able to know exactly what goes wrong when using tests.
  • TDD helps keeping application backward-compatible.
  • TDD might be used as a good tool to track the progress of a project.
  • TDD is a double-edged sword, being extreme or focusing too much on testing may dramatically slow the project down. It could even lead to a forever-project.
  • Sometimes, tests are so trivial and unnecessary.
  • Not everything can be tested. Not everything which can be tested can be tested automatedly.

“That’s all, folks!”[6]. The TDD discussion ended our session successfully. Thank you all for coming and sharing with us on that day. We really hope to see you again in the next session.

Bonus: JC’s PR for Hanoi Coding Dojo[8] @ HanoiLUG mailing list (see session Links) ;-)

Coding Dojo Session 5 (scheduled):

  • Date: 14 May 2010
  • Time: 2:00PM – 4:00PM
  • Place: AUF/CNF center, Institut de la Francophonie pour l’Informatique, 42 Ta Quang Buu, Hai Ba Trung district, Hanoi. See Wikimapia[7].
  • Discussion group (free to join): http://groups.google.com/group/hanoicodingdojo/
  • Source code and problems: https://github.com/organizations/HaNoiCodingDojo

Links:

  1. https://github.com/HaNoiCodingDojo/Problems/tree/master/Prime_Filter
  2. http://en.wikipedia.org/wiki/Common_Lisp
  3. http://en.wikipedia.org/wiki/Code_refactoring
  4. http://en.wikipedia.org/wiki/Test-driven_development
  5. http://codingdojo.org/cgi-bin/wiki.pl?TestDrivenDevelopment
  6. http://en.wikipedia.org/wiki/That%27s_all_folks
  7. http://bit.ly/jwdRIn
  8. http://bit.ly/jCqYSW

By Dương “Yang” ヤン Hà Nguyễn (cmpitg)

First #CodingDojo in Ha Noi

Thursday 14 April 2011

This is the announcement for the first #CodingDojo in Ha Noi by Serge Stinckwich !

#CodingDojo session was first invented in Paris in 2004 by the XP (eXtreme Programming) community. The aim of these sessions is to 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.

More information are available here: http://www.codingdojo.org/

Ha Noi #CodingDojo Organizers: Dương “Yang” Hà Nguyễn + Serge Stinckwich

Location: CNF Hanoi, Viện Tin học Pháp ngữ (IFI), ngõ 42 Tạ Quang Bửu, quận Hai Bà Trưng, Hà Nội

Schedule: Saturday, April 16th 2011 2pm => 4pm

Program of the first session (we will follow the same format than the
#CodingDojo from Paris):

  1. 5 min: Select the frequency and the date of the next #CodingDojo
  2. 20-30 min: Presentation of what is a #CodingDojo (Serge) – For the next session, this time slot will be used to do a retrospective of the previous session (what went well, what was interesting, what was frustrating).
  3. 10 min: Decide on a topic for this session
  4. 40 min: code (Kata or Randori)
  5. 5-10 min: Mid-session break to discuss how things are going
  6. 40 min: code (Kata or Randori)

The sessions will be completely language agnostic. The programming languages chosen at each session will depend of the attendees.

At the moment, the organizers know about (in no particular order) : 1) Python 2) Ruby 3) Smalltalk 4) Common/Lisp 5) Clojure 6) Java

More exotic programming languages like Haskell, Brainfuck, Scala, Lua, … are welcome. This is not really a big deal if not all the people don’t know the programming language of the session, but you may notice that a #CodingDojo is not a good place to learn a new language. The goal is to learn how to better program not to do some proselytism (mine language is better than yours). We need people who knows about these languages in order to conduct sessions. What is also particulary important if you want to organize a Kata or Randori, is to know how to write unit tests with these languages.

More information about the philosophy behind a #CodingDojo are available here:

http://www.slideshare.net/ntoll/organise-a-code-dojo

and here:
http://www.slideshare.net/caikesouza/coding-dojo-2879242

PS : As this is the first session and we lacking some experiences about this kind of event, we want to know before saturday the people who want to come. There is no prerequisite regarding programming languages or knowledge, but you need to sufficiently proficient in programming and knows a little bit about object-oriented programming. We expect that more elaborate sessions will be organized in the future and we will discuss about the frequency of the #CodingDojo
during the first session.

Introduction à la ligne de commande sous GNU/Linux | Lớp học dòng lệnh Linux

Sunday 10 May 2009

Un cours d’introduction à la ligne de commande sous GNU/Linux sera organisé en français (traduction vietnamienne simultanée), le samedi 16 mai 2009, de 8h00 à 12h00, avec la participation de Francis Dufeil, membre récent de la liste Hanoilug. Ce cours est avant tout destiné à un public vietnamien de débutants qui ont déjà installé un système GNU/Linux en mode graphique et qui désirent améliorer leur maîtrise du système grâce à la ligne de commande.

Pour tout renseignement complémentaire, veuillez contacter le Campus numérique francophone (CNF) de Hanoi (Tél: 04-38.68.48.85 ; @ : cai at vn.auf.org)

Lire le reste de cet article »

Hands on Ubuntu LTSP at CNF (18/04/2009)

Friday 10 April 2009

LTSP stands for the Linux Terminal Server project. It is a technology which ables several users to work on a same computer (the LTSP server) through connected terminal clients (the LTSP network). Similar technologies (requesting special equipment hardware) exist in the Windows environment, but LTSP under GNU/Linux makes it very cost effective as no special hardware is necessary other than ordinary network components.

After nearly one year of an experimental LTSP deployment, involving one Core 2 Quad (4 GB RAM) server installed with Ubuntu 8.04 serving up to 16 terminal clients, the Campus numérique francophone of Hanoi is launching its first hands-on LTSP short training course (in Vietnamese) on saturday 18th April 2009 (see details in Vietnamese here).

This first course of 3.5 hours should be sufficient for providing GNU/Linux users the ease of installing themselves a small LTSP network for their own purpose afterwards.

The LTSP technology, associated with Ubuntu, makes it an user-friendly experience, even for GNU/Linux beginners (not complete beginners though, but who are at ease with using computers), allowing them to recycle old computers for e.g. building up an internet-connected network in small libraries, associations, at home, etc.

Linux course 101 for beginners – Lop hoc Linux cho nguoi bat dau (30-31/08/08)

Monday 4 August 2008

More details on the C3LD website.

Lớp học Linux 101 ngày 17-18 tháng 05/2008

Tuesday 13 May 2008

Trung tâm kỹ thuật số (CNF) của AUF [1] tại Hà Nội sẽ phối hợp với Hanoilug để mở một lớp học Linux cho những người hoàn toàn không biết gì về Linux ngày thứ bảy 17/05/2008, kéo dài 3 buổi, kết thúc sáng chủ nhật 18/05/2008.

Lớp học sẽ bắt đầu vào 8g00 sáng ngày thứ bảy và 8g30 sáng ngày chủ nhật. Mỗi lớp học chỉ nhận tối đa 12 học viên (thao tác 1 người 1 máy), nhận theo thứ tự đăng ký và nộp phí trước.

Học phí [1] cho lớp học, bao gồm các tài liệu in, các đĩa CD để cài đặt và xem video, các buổi giai lao uống cà fê, là 100.000 VND (người đi làm) và 50.000 VND (học sinh, sinh viên các trường đại học công lập và dân lập). Đặc biệt các bạn nữ sẽ được ưu tiên và sẽ được giảm 30% chi phí (tức là 70.000 đ người đi làm và 35.000 đ cho sinh viên).

Thời gian đăng ký và nộp phí từ ngày 28/04 đến hết ngày 15/05/2008 tại trung tâm CAI-CNF, ngõ 42 Tạ Quang Bửu (Q. Hai Bà Trưng), Hà Nội (ĐT : 868.48.85). Các bạn muốn theo lớp học vui lòng tải một trong 3 loại phiếu đăng ký sau đây :

http://hanoi.centre-linux.org/article.php3?id_article=88

Linux 101 Hanoilug – 01 và 02 tháng 12/2007 (Linux for starter course)

Wednesday 21 November 2007

Đối tượng của lớp học Linux này là những người chưa biết gì về Linux hoặc chưa biết cài Linux trên một ổ cứng để dùng song song với một hệ điều hành khác.

Trung tâm kỹ thuật số (CNF) của AUF tại Hà Nội sẽ phối hợp với Hanoilug để mở một lớp học Linux cho những người hoàn toàn không biết gì về Linux ngày thứ bảy 01/12/2007, kéo dài 3 buổi, kết thúc sáng chủ nhật 02/12/2007.

More information in the CL3D website

Lớp học Linux 101 – tháng 04/2007

Monday 26 March 2007

Đối tượng của lớp học Linux này là những người chưa biết gì về Linux hoặc chưa biết cài Linux trên một ổ cứng để dùng song song với một hệ điều hành khác.

Trung tâm kỹ thuật số (CNF) của AUF tại Hà Nội sẽ phối hợp với Hanoilug để mở 2 lớp học Linux cho những người hoàn toàn không biết gì về Linux trong tháng 04/2007 theo lịch như sau :

  • lớp ngày thứ bảy 07/04/2007 và sáng chủ nhật 08/04/2007
  • lớp ngày thứ bảy 14/04/2007 và sáng chủ nhật 14/04/2007

more …

A successful course on Linux for beginners

Sunday 17 December 2006

Saturday 16th December, HanoiLug volunteers LeRoy Duvall and Lê Xuân Thảo trained 13 Vietnamese participants to install Linux during a full day, at the CNF-AUF.

Linux Course participants and trainersPartitioning the hard disk with Gparted

Ubuntu 6.06.1 LTS, Desktop edition, customized for Vietnam by JC André, has been used for demonstration during the Linux crash course. A Vietnamese translation of the Ubuntu Desktop Guide was given to the participants, as well as two CDs including the one cited for demonstration and Ubuntu 6.10 alternate CD.
Among the 13 participants, 4 had never used Linux and 9 had never tried to install Linux before the course. All but one have their own computer at home.
All successfully installed Ubuntu on the computers provided by CNF-AUF. After the course, all of them declared capable to install Linux by themselves and wanted to learn more about using Linux with computers.