48
Raspberry Piで日本の子供たちに プログラミングのパッションを 伝えよう! Let’s use Raspberry Pi to share our passion of programming with kids of Japan! September 21-22, 2016 Antoine Choppin @japonophile ショパン アントワン the World 世界

Let's use Raspberry Pi to share our passion of programming with kids of Japan

Embed Size (px)

Citation preview

Page 1: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Raspberry Piで日本の子供たちに プログラミングのパッションを

伝えよう!

Let’s use Raspberry Pito share our passion of programming

with kids of Japan!

September 21-22, 2016Antoine Choppin @japonophile

ショパン アントワン

the World

世界

Page 2: Let's use Raspberry Pi to share our passion of programming with kids of Japan

the story of a kidwho discovered programming...

Page 3: Let's use Raspberry Pi to share our passion of programming with kids of Japan
Page 4: Let's use Raspberry Pi to share our passion of programming with kids of Japan
Page 5: Let's use Raspberry Pi to share our passion of programming with kids of Japan
Page 6: Let's use Raspberry Pi to share our passion of programming with kids of Japan

a little about me

@japonophile

japonophile

from: Belgium, living in Japan work: software engineer in Healthcare hobby: neural nets, robots … langs: (Java / C#), Clojure, Python, JS … kids: 2 daughters (ES 5th and 2nd grade)

Antoine Choppin

Page 7: Let's use Raspberry Pi to share our passion of programming with kids of Japan

agendaRecipe to share our passion of programming with kids

Small

Fun

Story

Language

Friends

Page 8: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Steve Jobs

Page 9: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Eben Upton

Page 10: Let's use Raspberry Pi to share our passion of programming with kids of Japan
Page 11: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Small

Page 12: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Alex Klein

Page 13: Let's use Raspberry Pi to share our passion of programming with kids of Japan
Page 14: Let's use Raspberry Pi to share our passion of programming with kids of Japan
Page 15: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Small

Fun

Page 16: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Computer kit

OS

Apps & Games

Community

Kano

Page 17: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Kano OS

Page 18: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Make Minecraft

Page 19: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Terminal Quest

Page 20: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Make Art

Page 21: Let's use Raspberry Pi to share our passion of programming with kids of Japan
Page 22: Let's use Raspberry Pi to share our passion of programming with kids of Japan

CommunityEnjoy programming with friends

Page 23: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Small

Story

Fun

Page 24: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Bonjour, comment va?Apprenons a programmer

Connaissez-vous Kano?

Je m’appelle Jean

Que voudrais-tu fabriquer?

Jouons a un jeu!

Je vais te raconter une histoire

Page 25: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Translate Kano Apps

Page 26: Let's use Raspberry Pi to share our passion of programming with kids of Japan

What is i18n?

= internationalization

modify a program to make it possible to support other languages

l11n = localization

add support for a foreign language to a program translation + ...

Page 27: Let's use Raspberry Pi to share our passion of programming with kids of Japan

gettext intro... print _(“Hello, my name is Kano”) ...

Program: myapp-main.py

... src/myapp-main.py ...

PYPOTFILES: List of files to be processed by xgettext

#: src/myapp-main.py:36 msgid "Hello, my name is Kano" msgstr ""

Translation template: messages.pot

#: src/myapp-main.py:36 msgid "Hello, my name is Kano" msgstr "こんにちは、Kanoと言います。"

Japanese translation: ja.po

#: src/myapp-main.py:36 msgid "Hello, my name is Kano" msgstr "Bonjour, je m’appelle Kano"

French translation: fr.po

001110100110111101010001000010101110100010100101010100010101110101011101001010100100010101001000101010111

locales/ja/LC_MESSAGES/myapp.mo

000010101110100010100101010100010101110101011101001010111001110100110111101010001010101001000101010010001

locales/fr/LC_MESSAGES/myapp.mo

Page 28: Let's use Raspberry Pi to share our passion of programming with kids of Japan

i18n tips● Use .format instead of %s, %d ● Use named params instead of

positional params: _(“Today is {} {}”) _(“Today is {month} {day}”)

● Write comments for the translators ● Do not split sentences:

_(“this is a “) + car.color + _(“car”) _(“this is a {color} car”).format(color=car.color)

● Avoid including HTML in strings: _(“<em>Welcome!</em>”) u”<em>” + _(“Welcome!”) + u”</em>”

https://www.youtube.com/watch?v=UOOMFGURr5I

Page 29: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Overview of Terminal Quest

StoryBook Terminal

Terminal.py

challenge1.py

challenge2.py

ASCII art

socke

t transm

ission

Page 30: Let's use Raspberry Pi to share our passion of programming with kids of Japan

I18n of Terminal Quest

● Mark UI visible strings ● Update format (parameters etc) ● Copy ASCII art folder for each language ● Typewriter ○ Fix width computation (for wide characters) ○ Fix word-wrapping algorithm (for lg with no space)

● Adjust buffer size (for multi-byte strings)

Internationalisation is not just translation!

Page 31: Let's use Raspberry Pi to share our passion of programming with kids of Japan

I18n of Terminal Quest

Page 32: Let's use Raspberry Pi to share our passion of programming with kids of Japan

I18n of Make Light

● Python UI using gtk

● Content (challenges) in JSON format

Page 33: Let's use Raspberry Pi to share our passion of programming with kids of Japan

How to switch Kano (RPi) to Japanese

$ sudo dpkg-reconfigure locales en_GB.UTF-8 UTF-8 ja_JP.EUC-JP EUC-JP * ja_JP.UTF-8 UTF-8

$ apt-get install ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname

Page 34: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Demo

Page 35: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Kano i18n status

   i18n done    PR merged terminal-quest ◯ ◯ make-art ◯ ◯ make-snake ◯ ◯ make-light ◯ × make-adventure × × make-minecraft × × kano-profile ◯ × kano-settings △ × kano-updater ◯ ◯ kano-vnc ◯ ◯ kano-apps ◯ ◯ kano-greeter ◯ ◯

Page 36: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Open issues for Japanese support in Kano

• IME (support Japanese input)

• i18n support for apps not (yet) open source

• Translation timing vs release timing

• Translation of community site

Page 37: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Small

LanguageStory

Fun

Page 38: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Ready forBeta Testing!

Page 39: Let's use Raspberry Pi to share our passion of programming with kids of Japan

“Penguin”Programming Club

- For elementary school kids, parents welcome

- One Saturday morning every month

- Make programs (games etc) with our friends

- Use Kano or bring you own PC

- Mostly block-based language (like Scratch)

Page 40: Let's use Raspberry Pi to share our passion of programming with kids of Japan
Page 41: Let's use Raspberry Pi to share our passion of programming with kids of Japan
Page 42: Let's use Raspberry Pi to share our passion of programming with kids of Japan
Page 43: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Topics

blocks vs code

Kano vs own PC

assignment vs free

learn from teacher vs friends

logic/math vs creativity

Page 44: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Small

Friends

LanguageStory

Fun

Page 45: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Let’s share our passion of programming with kids

Summary

- Raspberry Pi is a great platform to learn programming

- It is more fun to learn with friends

- Let’s go beyond frontiers and i18nalize our apps

- Let’s contribute to Open Source

Page 46: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Bonus

Page 47: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Questions?

Page 48: Let's use Raspberry Pi to share our passion of programming with kids of Japan

Fin

https://www.raspberrypi.org/ https://kano.me/ https://github.com/KanoComputinghttps://www.gnu.org/software/gettext/https://art.kano.mehttps://chopp.in/penguin/