Godotの諸情報をまとめる

EuroPython2017のセッション一覧を見てたら、Bringing Python to Godot game engine · EuroPython 2017 · Rimini, 9-16 July 2017 というセッションを発見し、Godotを知った。

以下、調査を行おうと思うので、ざっとGodotの情報をまとめる。

Godot(ゴドー)

諸情報

天沢らせんさん(3Dモデラーさん?)

天沢らせんさんが日本語の情報や、書籍の出版を行っていた。
3Dモデラーさん?なのかな。

当面お世話になることになりそう。

書籍

天沢らせんさん著の書籍がある。購入するかは、未定。

誰かがまとめてくれたリンク集

ドキュメントの日本語翻訳

個人でドキュメントの日本語翻訳を試みてる方がいるようだ。

Godotインストー

バイナリやソースコードで配布されてる。
面白いことにSteamからもインストール可能。

Godotを実際に触った話

日本語化

エディタは日本語化されていない。(余力があれば、jaを追加したいところ)
エディタにはデフォルトで日本語のフォントが入っていない。

ひとまずNotoSansを入れている先駆者が数人いて、記事にしていてくれた。感謝。

ラベル

Mac上のエディタで、日本語を文字列のラベルをシーンに追加し、実行し表示することはできた。
フォントは前述したNotoSans。

f:id:rokujyouhitoma:20170610214254p:plain

ソスコードはここに置いておいた。

所感

当面調べてみようかなー。と思える。
ドキュメントはある程度揃ってる。このエンジンで作られたゲームもいくつかはOSSで公開されているので見てみる。

ドキュメントやら、ネット上のサイトみたり、触ってて気づいた点がいくつかあった。

  • fbxサポートしてない。Autodeskのクローズドライブラリのライセンスとの兼ね合い上が理由だそうな。Importing 3D scenes — Godot Engine 2.1 documentation
  • エディタが落ちる。とりわけ外部データ(今回だとフォントのインポート)時にクラッシュ

EuroPython2017開催。7月9日〜16日

今年もEuroPythonが開催される。また僕は行けない。

動画がYoutubeあたりに公開されるのを楽しみにしている。

EuroPython2017

開催日時は、7月9日〜16日。
開催場所は、イタリアのアドリア海沿岸のリミニ。サンマリノ共和国の玄関口だそうだ。

イタリア開催多いな。

今年は、EuroPythonの公式ブログも立ち上がってる。

個人プロジェクトXのコード書いてたら副産物としてテンプレートエンジンがある程度仕上がった

f:id:rokujyouhitoma:20170528222128j:plain

にゃーん。これはねこの飼い主との思い出が詰まった投稿。

なお、画像は知人の飼い猫で、使用許可取ってない。

経緯

2011年11月にtornado.templateJavaScriptに移植した。
使えはするけど、細かい機能まで作りきれてなかった。

ちょうど、今回の個人プロジェクトXで、

  • JavaScriptで書かれた
  • テンプレートエンジン

が必要になったので、メンテして使えるようにした。

前提の個人プロジェクトX

詳細は割愛。テンプレートエンジンに関して記載すると、

- X自体は外部のコード使いたくなかったので、巷で流行ってる?vanilla js。
- Closure Compilerは採用。

テンプレートエンジン

ざっくりと整理。

こんな感じで使える。

var loader = new DictLoader({
    "base.html": '<title>{% block title %}default title{% end %}</title>\n' +
	'<body>{% block body %}default body{% end %}</body>',
    "page.html": '{% extends "base.html" %}' +
        '{% block title %}page title{% end %}' +
        '{% block body %}page body{% end %}'
});
loader.load('page.html').generate();

https://github.com/rokujyouhitoma/horse-racing-game/blob/master/src/js/lib/template_test.js (将来リンク切れになってもしらね)

既知の不具合、問題点

  • 一部でテンプレートエンジン内部コードを構築するの面倒だったのでeval使ってる。
  • テンプレート構文が部分的にバグってる。具体的には{{this}}でブラウザだとglobalオブジェクトにアクセスできちゃったり{{XXX}}で任意のオブジェクトにアクセスできてしまう。また自由な構文(内部的にはStatementBlockで評価するだけ)を許可してしまっている。

私感

  • 個人的に使う限りは困らないところまではできた。
  • Closure Compiler最高。
  • Pythonのwith構文相当を関数で提供は大したコードではなかったけど、面白かった。
  • 個人プロジェクトXではこんなだいそれたコードは複雑度が増すし要らなかったんや!実際に削減できたコード?そんなの数十行だけだ!!増えたコード??2000行近くだ!!満足感はある。後悔はしていない(ただし個人プロジェクトだから!、業務だったら...)。
  • にゃーん

開きっぱなしのブラウザタブを消すための備忘録

備忘録。ブラウザのタブで開きっぱなのをkillしたいので。書き出しとく。

自分以外の人にはなにも有用ではないだろう。

脳内の書き出し

ついでに、脳内でもやーっとしていて考えがまとまってないのを書き出しとく。

- 人工知能学会に提出されたpixivに関する論文は、学会側が研究倫理ガイドラインを作って啓蒙する必要があるのかなぁ。と思う次第。どうでしょうね。そもそも学士課程、修士課程で学ぶもんだろとは思う
- 任意組合を調べるのは限度がある。というか、調べられない。なお、一生に一度は作ってみたいとちょっと思う。必要と機会があれば

私感


大抵ははてぶしているはずであるが、こういうのまとめとくのになんかいいのかなぁ。

ああ、これがウェブログか?どうだろうか。

近況

4/1といえば。エイプリルフール。近況を。

のびのび書くよ!

要約

  • 株式会社ITAKOは三期目に
  • 4月から放送大学の選科履修生
  • 自然言語処理言語学は引き続き、言語処理系は休止
  • アイドル?のおっかけ?とかしてたら美学を学ぶ必要あるか??
  • 松浦党研究連合会
  • 効率よく生きないと時間がいくらあっても足りない

株式会社ITAKO

所属する株式会社ITAKOは三期目に入りました。

主にゲームの開発をしている会社です。会社に興味ある人がいたら、遊びに来てください。

放送大学の選科履修生

ひとまず上期に、 情報のセキュリティと倫理(’14) を受講予定。
すでに教科書は読み終えたので、録画した授業ないしは、放送大学のサイト上で授業を観て単位取得試験に挑む予定。

岡部前学長

遅れましたが、お疲れ様でした。
岡部学長からの最後の合格通知だと思うと寂しい限りです。

放送大学の学生するって噂を人づてに耳にしたので、単位取得試験の会場でお会いする機会などありそうな気はしています。

自然言語処理言語学、言語処理系

自然言語処理

自然言語処理は、引き続きだけど、あまり時間を避けていない。
先日開催されたNLP2017の発表資料?論文?は、公開されていたので斜め読みだけでもしたいと思っているがまだできていない。

自然言語処理の資料

言語処理学会の正会員になっていないけど、Paperを読めることに気づく。

一応放送大学の情報コースを履修している学生ではあるのだけど、言語処理学会の会員の申請に、学生として申請すべきか悩んでいる。
学生として申請するからには学業の一部で、利用するのが筋。

日本古典籍字形データセット

知人から教えてもらった国立情報学研究所(NII)が公開したデータセット
言語処理のみならず画像処理(というかそっちの学習データメインかな)で使えそう。OCRとか。

雑多
話だいぶそれる

それはさておき、昔勤めていた会社が、言語処理学会第21回年次大会(NLP2015)からプラチナスポンサーではなくなってること気づく。一方で別の昔勤めていた会社が、2016年からプラチナスポンサーになるなどしていて、栄枯盛衰とはこのことかと感じている。

言語処理系

特に体系だって学んだり、スケジューリングして学んでいるわけではない。

PyPy-DevとPython-DevのMLはタイトルベースと気になるのは追っている。Python-Dev MLの @methane さんの投稿はとりわけ見てる。
あとはRPythonで書かれた処理系をたまに探す程度。

たまに(偶然、月一くらい?) @gocho と出会っていて、彼が処理系の学部生向けくらいの書籍を読んでいて、僕も読まないとなーと思ってる。そういえば、ドラゴンブック読んだことないし。

言語学

基礎的な書籍は読了しているが、停滞中。

まさに一昨日くらいの直近の話題だと、ひょんなところで、低地オランダ語のドイツ語とオランダ語の類似度について話題になったのでおってみたいと思ってる。
ひとまずネットを適当に散策したら、北海道大学の学生さんか教員がまとめていたので目を通す予定。

一つ気づいたのは、いかんせん世界史を高校で未履修というレベルなので、外国の歴史絡むと辛いないーというのには気づいた。

時間と心の余裕あれば、放送大学の大学院の講義だけど、 放送大学 授業科目案内 文学・言語学・美学研究法(3)「言語学研究法」 を受講したいところ。

アイドル?

天使ちゃんかわいいよ天使ちゃん。...かわいいってなんだろうな?

だいぶ飽きてきたけど、よい表現をすれば、天使ちゃんって一人ユニット?アイドル?の追っかけ?っぽいことをした。
その過程で、美術館をはしごして、そういえば、僕が絵画大好きだったなーという気づきがあった。

昔は年20回くらい美術館行ってたものな。

時間と(ry 放送大学 授業科目案内 文学・言語学・美学研究法(3)「言語学研究法」

あと、追っかけるために、複数の検索エンジンにクエリ投げるツールの整備とかした。
@sugyan みたいに画像処理には手を出していない。@sugyan の記事見るに、ドメイン知識を貯めるのもありだけど、それはだいぶ沼だよなー。って思って躊躇してる。

松浦党研究連合会向けの活動

要するに郷土史歴史学

停滞中。大きな進捗はないが、完全にないわけではない。

現状分析としては、まだ、基礎知識を仕入れているところ。伊万里市史は一通りさらったけど、唐津市史はまだ。
風土記(日本文學大系)と古事記(同、岩波の単行本は移動時用に)はさらっとさらった。

佐世保市史を調達したいと考えている。
ありがたいことに松浦叢書は手に入れた。が、上巻を二冊手に入れてしまうという事故を引き起こした。

いつか連合会の研究会に出席したいところだが、いかんせん遠い。会場は長崎、佐賀県だからなぁ。

効率よく生きないと時間がいくらあっても足りない

ほんとこれな。

人生の先輩エリック・ホッファー先生はどうやって生きたのか、原点回帰が必要なのかもしれない。

なかよし

全然関係ない話なんだけど、同僚からおすそ分けもらったイカとチーズの乾物がめっちゃ美味しかった。

イカ珍のはなまんが販売している「なかよし」。

www.hanaman.net

Docker上のUbuntuにemscripten実行環境を作った

備忘録。

チョットJSデキル。
が、しかし。ECMA2016とか全く乗り遅れてるので、久々にJS書こうかなーって思いたつ。
ひとまず、emscriptenに興味があって、試したいのでemscripten環境をざっとつくる。

Dockerfile書くまで整備した。
たぶんECMA2016は書かない。触れない。

TODO

Docker imageのコンパクション技法

Ubuntu前提。

  • apt-get
    • update, upgradeが不要であれば、避ける
  • apt-getで入れたあとの/var/lib/apt/lists/*は消す
  • ビルド時などの一時ファイルは消す
  • git cloneは極力避ける。.gitが大きい。ソースコード配布を活用する
  • Ubuntuベースで作っちゃったが、より軽量なLinuxディストリビューションは検討したほうがよいかも。Centos/Fedora派なのに気まぐれでUbuntu採用しちゃったから、CentOSの容量と比較して乗り換え考えるかな

『独習Python入門』を献本頂きました

著者の ござ先輩(id:gothedistance) こと湯本さんからご献本頂きました。
手配してくださった、また編集担当の技術評論社の池本さんありがとうございます。

本日2016/8/5が記念すべき出版日です。(紹介記事ギリギリ間に合った)

『独習Python入門』

書籍のタイトルどおり、プログラミング言語Python(以下、Python)を使った書籍。

f:id:rokujyouhitoma:20160805235641j:plain:w300

まとめ

各章の紹介はあとにして、まとめを先に。

  • よい書籍。説明丁寧でわかりやすい。
  • 僕自身が中学生、高校生時代に欲しかった。内容は職業プログラマーで経験値そこそこ積んだ僕には入門すぎるので適してない。
  • ゆえに、中学校、高校に置かれたらいいなー。自治体の図書館とかにも適してると思う。
  • プログラミングの一般教養として一冊目に読むのはあり。大学で一般教養科目としてプログラミング言語のコースを今時取るのですが、その前の一冊として読むのもあり。
  • IPAが行っている国家資格のITパスポート持ってるくらいの人はこのレベルは知っててほしいところ。
  • 5年ごとに改丁版出せるぐらい、ロングセラーになるとよいな。(時事扱ってるのもあるからそのあたりの更新は楽しみ)
  • 息子が4歳なのだけど、将来、彼が大きくなったら、一冊目にはこの本よさそう。

gihyo.jp

目次

  • 第1章 はじめてのプログラミング
  • 第2章 条件で分ける方法(分岐の基礎文法)
  • 第3章 繰り返しさせる方法(反復の基礎文法)
  • 第4章 関数を使ってみよう!
  • 第5章 いろいろな型を学ぼう
  • 第6章 エラーと例外を使いこなす
  • 第7章 オブジェクトとクラスとは何か?
  • 第8章 自分が書いたログラムをテストする
  • 第9章 明日から使えるWebプログラミング
  • 第10章 Webアプリケーションことはじめ
  • 第11章 今後の学習に向けて

各章にコメント

1章

導入部分として、プログラムとは何か?Pythonは何か?をさっくり説明。
Pythonの開発環境を整えずために図解とともに手順しめすのもこの章。

四則演算、変数、演算子文字コード、型に関する説明や、プログラムコードのネーミングスタイル(ネーミングルール)の説明。

2章

2章では、冒頭から開発環境の構築。Atomというプログラマーでは大変有名なgithub.comというサービスを運営する会社が無償で配布しているテキストエディタを図解ととともに導入手順を示している。

その後この章で一番伝えたいであろう、条件分岐(もし〜だったら、何をさせる)について解説。
論理演算子(and, or, not)やプログラミング言語

合わせて、コンピュータの基本的な機能のお話。具体的にはディレクトリとは何か?どのように操作するのか?を簡単に解説。

Pythonのエラーにや、多くのプログラミング言語で存在する予約語についてもこの章で触れる。

練習問題としてはFizzBuzzというGoogleで検索すると、よくお目見えする問題と、体重/身長^2で算出できるBMI値の求め方。

3章

3章では、反復処理について、配列というデータ構造とともに説明していくのが中心。
ソースコードにメモ書きを残すコメントという機能についてもこの章で解説。

4章

4章では、多くのプログラミング言語で提供されている関数という機能の紹介。
Pythonが標準でもっている標準関数の幾つかに触れた後、プログラミングする人が自分で定義できるユーザー定義関数について解説されています。
また、ライブラリの読み込み・呼び出しもこの章で解説。

練習問題は、世界のナベアツに関してでアホだなー。

Note: すっごい細かいこというと4-6 "ほかの関数を使う(import)"は若干ミスリードタイトルで、importは関数ではなく、文(Statement)かなー。
6. 単純文 (simple statement) — Python 2.7.x ドキュメント

5章

5章では、Pythonにおけるデータ型について説明。具体的には辞書型(Dictionary), タプル型(tuple), 集合型(set), None。

関数のキーワード可変長引数も混ぜ込まれてる。

6章

この章では、Pythonにおけるエラー・例外処理とは何かを紹介。

Note: 例示されているTypeErrorは構文エラーかどうか...実行時エラーではなかろうか...。

合わせて、ファイルへのデータの読み書きを解説。ファイル読み書きは例外処理する典型例でもあるので解説。

7章

7章では、概念的なお話。オブジェクトとは何か、何をどう捉えるのかというお話。
Pythonにおいて、どのようにプログラムで表すのかを解説。

この章の練習問題はいままでと違って、若干ボリュームがあるけど、プログラムの設計について著者からの助言を読めるので、読み飛ばさず読むことをおすすめ。

Note: すごい。実測値かしらないけど、著者の身長、体重載ってておもろい。

8章

8章では、テスト。
書いたプログラムはかならず意図した動きをするのかテスト・検証する必要があり、その解説。

プログラムに対しては、Pythonには標準ライブラリにunittestというライブラリが搭載されているので、そのライブラリを使っての解説となる。

9章

この章では、Webシステムの基本を抑える解説。
HTML, CSSをさらっと紹介し、サイトにスクレイピングという手法で情報(データ)を集める流れを紹介する。

Note: 僕自身は過去に検索エンジンの会社でクローラー関連も携わってたから倫理・道徳観が養われているわけだが、むやみなスクレイピング。ダメ・ゼッタイ。という記載が欲しかったところ。

10章

10章では、Pythonを使って簡単なWebアプリケーションを作って学ぶ。

11章

11章は、最後の章で、今までの振り返りと、今後の学習方法の提案をさらっと。

困ったら、ござ先輩に問い合わせるでいいと思う。編集者にではなく、著者のござ先輩へ。

参考

独習Python入門――1日でプログラミングに強くなる!

独習Python入門――1日でプログラミングに強くなる!

他の書評など知り、Pythonで困ったら

まずはGoogleで検索

それでも困ったら面倒だから、著者の id:gothedistance をネット上で捕まえて問い合わせしちゃっていいと思う。

まずはGoogleで検索

それでも困るようなら id:rokujyouhitoma に連絡で構わないです。

ござ先輩

野球好き。

なお、ござ先輩とは直接面識はない。たぶん。
もしかしたら java-jaコミュニティですれ違ってるかも。たぶん。

そんなに遠くに感じない不思議。

僕とPython

余談です。全くもって余談。

僕とPythonとの関わりを紹介すると、ちょうど10年前の秋(06Q4)。

SIerが手掛けるかなり大きめの案件に参画して、ファイル保存サーバにActivePythonがあるのを発見して、ドキュメント読んだりCGI書いて遊んだのが最初だったと記憶してます。

いま思うと、繁忙期ではなく、かつネットに繋がれていない開発ルームだったから触った、外の息吹を感じたかったのだと思います。

その数カ月後にプロジェクトに導入されてたTrac(たしか0.11系だったような?)のプラグイン書く作業があって、担当したのが仕事で書いた初めてのPythonコードだったのかな。

その後趣味で使ったり、仕事で使う機会があったりしました。今はゲームプログラマー2年生でUnity C#を使う機会が増えたのですが、今日はたまたまクローラーを書く必要があったのでScrapyを投入してみたりする際に使ってます。

一番しっくりするツールチェーン is Python