近況

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

「Unreal Engine&Unityエンジニア養成読本[イマドキのゲーム開発最前線! ] (Software Design plus)」の執筆の一部を担いました。

株式会社ITAKOに所属しているゲームプログラマー1年生の池です。はじめまして。

現在の職場の株式会社ITAKOの仲間達とゲームエンジンのUnrealEngineとUnityに関する書籍を出版することになりました。

Unreal Engine&Unityエンジニア養成読本[イマドキのゲーム開発最前線! ] (Software Design plus)

出版元の技術評論社さんの公式ページ

gihyo.jp

概要

企画の着眼点・経緯は、
UnityとUnrealEngineのそれぞれの書籍は世に数多ある。
だけど、両方のゲームエンジンが載ってて、かつ特定の目的をそれぞれのエンジンで解説するという書籍がなかった。
なので、出版社の編集の方にご提案し、実現するに至りました。

168ページと薄めの書籍です。ですが、薄いながらに詰め込みました。ただ、ページも薄く紹介するエンジンが2つということは、他書でよくあるエンジン1つの書籍よりも内容は薄いのは自明です。

内容は、
Part1では、導入部分として、それぞれのエンジンの紹介から、コミュニティや取り巻く環境、ショートカットキーの解説。
Part2では、3Dのモデルデータを取り込みキャラクターを表示し、実際にアニメーションを付ける。
Part3では、2Dでキャラクターをスプライトアニメーションする。
Part4では、著者陣が近年携わってるモバイル向けの概要、機能の紹介、広告SDK、ランキング機能に関して。
そして最後のPart5では、現在進行で発展を続けており、今後のコンテンツも期待できるVRの紹介。実際にそれぞれのゲームエンジンの機能でVR向けのコンテンツを作り、流れを解説します。

店頭で見かけたら是非手にとって中を見ていただければ嬉しいです。

目次

Part1 徹底解説!話題のエンジンUnity5 & Unreal Engine4
  • 1章:Unity5 & Unreal Engine
  • 2章:より便利にUnity5 & UE4を利用しよう
Part2 3Dキャラクターに動きをつけて世界を表現 キャラクター・アニメーション編
  • 1章:ゲームの世界を覗いてみよう
  • 2章:キャラクターを表示する
  • 3章:アニメーションの再生
Part3 2Dスプライトアニメーション/UIを学ぶ スプライト・UI編
  • 1章:2D表示の基本を学ぼう
  • 2章:Unity5/Unreal Engine4でスプライトを表示しよう
  • 3章:Unity5/Unreal Engine4でスプライトキャラクターを制御しよう
  • 4章:Unity5/Unreal Engine4でUIを作ろう
Part4 モバイルの基礎知識とランキング機能/広告組み込み実践 モバイル編
  • 1章:モバイルゲームを開発するには
  • 2章:Unity5/Unreal Engine4におけるモバイル対応の基本
  • 3章:Unity5/Unreal Engine4で広告を表示しよう
  • 4章:Unity5/Unreal Engine4でランキングと実績機能を実装しよう
Part5 お手軽開発 VR編

余談

なお余談ですが、ボツ案として、UnrealEngineのソースコードが容易に入手、閲覧可能となった時期だったのでそのソースコードをひたすらリーディングしていくという書籍も検討しました。うまく企画がまとまらず断念無念。

株式会社ITAKO

今後とも”娯楽を中心に生きていく”をモットーとした株式会社ITAKOをよろしくお願い致します。

現在の主事業はゲーム開発ですが、娯楽に関わること全般なんでもご相談下さい。

φ(..)メモメモメモメモ

自分の備忘録。Chromeのタブが限界を迎えてしまうのでリンク集をまとめとくというのが発端。
だったのだけど、ローカルのテキストファイルに書き込んだものも掘り起こしとく。

ゲーム開発

膨大すぎて割愛(ry

ゲーム関連の掘り起こしは別の機会に(えらいことになってる...)

ゲーム

積みゲーが多発。アナログゲームもデジタルゲームも。

トピックモデル

知人と話してて答えられなかったので。
基本的に小町研 or NAIST or 人名(北 研二, 辻井潤一...etc)and トピックモデルなどの検索クエリとかでググってる。

数学

統計学の基礎のきが抜けてる関係でぐぐった。大抵P given XとかΠが相乗でとかブツブツ言ってる。トピックモデル調べる際の副産物が主。

物理

ゲーム物理で復習をした。

書籍

割愛するが...以下のとおり。

  • NLPがてんこ盛り。
  • NLP以上にゲーム開発の書籍がてんこ盛りすぎて吹く。
  • 史学はそこそこ。
  • 上記以外もなみなみ。

処理系

Σ この記事書いてて思い出した。Hy(Hylang)は初コミットから250コミットくらいを読んでて力尽きてる所。

おれ、全コミット(今1800ちょっと)よみおわったら、つぎは、pixieよむんだ...。

放送大学

4単位分科目履修生。途中課題も提出して問題なし。

総括

時間がいくらあっても足りない/(^o^)\
優先順位つけて、本業で能力発揮するために、ゲームと数学にシフトしてく方針ではある。

備忘録を見直すこと。

Hy(Hylang)をCythonでコンパイル

Hythonコミュニティの id:rokujyouhitoma です。こんにちわ!

Hythonコミュニティ

Hythonコミュニティは不定期的でHython(廃村)-hack-a-thonと称して、廃村めぐりを開催しています。Pythonで知り合った人たちがほとんどです。

前回参加時は、たしか...猿島?の要塞跡を見学しました。それ廃村じゃ無いじゃん、廃墟じゃん。というツッコミはあるかと思います。
前々回は、奥多摩の廃村だったと記憶してます。山奥でさまよってやっとのこと住居跡を見つけたのですよ!

で?

さて、現在開催中のPython その2 Advent Calendar 2015でcsakatokuさんがHy記事で無双(?)してるのをみてHyに興味をもちました。

Hythonと語呂がちょうどあってそうだし、Pythonで書かれたLisp系処理系のHy(Hylang)を触らないのはもったいないかなー。

さて、前置きが長くなりましたがHythonコミュニティと全く関係ない、本題を...

HyをCythonでコンパイル

というわけでPythonで書かれたLisp処理系の1つHyについてです。

HyPythonで書かれてるので、Hyの処理系自体をCythonで*.soにすれば、速くなるかな?というのを試します。

環境

$ Python -V
Python 2.7.9
$ uname -s
Darwin

検証コード

実際にインストールしたい人は下記でインストール可能です。

cd <上記のリポジトリ(feature/cythonizeブランチ)>
pip install -e .

結果

Cythonizeは成功。作業時間はこの記事書くの含めて2h。実作業には1.5hくらい。

  • 単純な実行だと速度改善する。
  • ただし、本家Hyだとこけないテストが、自前のCythonize版ではそもそもエラー&コケる...。

単純なコード

例えば、map処理

オリジナルをCPythonで
time hy -c "(map inc [1 2 3])"
hy -c "(map inc [1 2 3])"  0.92s user 0.07s system 98% cpu 1.001 total
Cythonバージョン
$ time hy -c "(map inc [1 2 3])"
hy -c "(map inc [1 2 3])"  0.69s user 0.11s system 79% cpu 0.997 total
単純なコードでの結果

33%速度改善がみられた。Cythonのアノテーションなしで33%の改善なら悪くない。

オリジナをCPythonで Cythonバージョン
0.92s 0.69s 1.333

コケる

オリジナルをCPythonで

$ time make test
(省略)
Ran 419 tests in 57.520s

OK
make test  53.09s user 3.23s system 96% cpu 58.337 total
Cythonバージョン
$ time make test
(省略)
Ran 419 tests in 41.521s

FAILED (errors=1, failures=4)
make: *** [test] Error 1
make test  37.97s user 3.21s system 96% cpu 42.509 total
ERROR

Errorが1件。致命的。
うーん。not iteratableなオブジェクトが来てる...なぜ。

======================================================================
ERROR: NATIVE: test the iteration behavior of cons
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/rokujyouhitoma/.virtualenvs/cythonize-hy/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/Users/rokujyouhitoma/.virtualenvs/cythonize-hy/lib/python2.7/site-packages/nose/util.py", line 620, in newfunc
    return func(*arg, **kw)
  File "/Users/rokujyouhitoma/workspace/github.com/hy/tests/native_tests/cons.hy", line 291, in test_cons_iteration
  File "hy/models/cons.py", line 85, in __iter__ (hy/models/cons.c:2403)
    for i in iterator:
  File "hy/models/cons.py", line 79, in genexpr (hy/models/cons.c:2186)
    iterator = (i for i in self.cdr)
  File "hy/models/cons.py", line 85, in __iter__ (hy/models/cons.c:2403)
    for i in iterator:
  File "hy/models/cons.py", line 79, in genexpr (hy/models/cons.c:2186)
    iterator = (i for i in self.cdr)
  File "hy/models/cons.py", line 85, in __iter__ (hy/models/cons.c:2403)
    for i in iterator:
  File "hy/models/cons.py", line 79, in genexpr (hy/models/cons.c:2186)
    iterator = (i for i in self.cdr)
  File "hy/models/cons.py", line 85, in __iter__ (hy/models/cons.c:2403)
    for i in iterator:
  File "hy/models/cons.py", line 79, in genexpr (hy/models/cons.c:2186)
    iterator = (i for i in self.cdr)
  File "hy/models/cons.py", line 85, in __iter__ (hy/models/cons.c:2403)
    for i in iterator:
  File "hy/models/cons.py", line 79, in genexpr (hy/models/cons.c:2156)
    iterator = (i for i in self.cdr)
TypeError: 'HyInteger' object is not iterable
FAIL

Failは4件。そこそこ致命的。

前半2つはkoanというマクロが起因でコケてる。
後半2つは、前半2つと同様koanか、ideasというマクロが起因でコケる。

======================================================================
FAIL: tests.test_bin.test_bin_hy_stdin
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/rokujyouhitoma/.virtualenvs/cythonize-hy/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/Users/rokujyouhitoma/workspace/github.com/hy/tests/test_bin.py", line 60, in test_bin_hy_stdin
    assert "monk" in ret[1]
AssertionError: 
    (0, u'\x1b[?1034h=> => ', u'hy 0.11.0 using CPython(default) 2.7.9 on Darwin\n  File "<input>", line 1, column 1\n\n  (koan)\n  ^----^\nHyMacroExpansionError: expanding `koan\': <cyfunction koan_macro at 0x10311e1d0> is not a Python function\n\n\n') = run_cmd("hy", '(koan)')
    assert (0, u'\x1b[?1034h=> => ', u'hy 0.11.0 using CPython(default) 2.7.9 on Darwin\n  File "<input>", line 1, column 1\n\n  (koan)\n  ^----^\nHyMacroExpansionError: expanding `koan\': <cyfunction koan_macro at 0x10311e1d0> is not a Python function\n\n\n')[0] == 0
>>  assert "monk" in (0, u'\x1b[?1034h=> => ', u'hy 0.11.0 using CPython(default) 2.7.9 on Darwin\n  File "<input>", line 1, column 1\n\n  (koan)\n  ^----^\nHyMacroExpansionError: expanding `koan\': <cyfunction koan_macro at 0x10311e1d0> is not a Python function\n\n\n')[1]
    

======================================================================
FAIL: tests.test_bin.test_bin_hy_cmd
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/rokujyouhitoma/.virtualenvs/cythonize-hy/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/Users/rokujyouhitoma/workspace/github.com/hy/tests/test_bin.py", line 65, in test_bin_hy_cmd
    assert ret[0] == 0
AssertionError: 
    (1, u'\x1b[?1034h', u'  File "<stdin>", line 1, column 1\n\n  (koan)\n  ^----^\nHyMacroExpansionError: expanding `koan\': <cyfunction koan_macro at 0x10311e1d0> is not a Python function\n\n') = run_cmd("hy -c \"(koan)\"")
>>  assert (1, u'\x1b[?1034h', u'  File "<stdin>", line 1, column 1\n\n  (koan)\n  ^----^\nHyMacroExpansionError: expanding `koan\': <cyfunction koan_macro at 0x10311e1d0> is not a Python function\n\n')[0] == 0
    assert "monk" in (1, u'\x1b[?1034h', u'  File "<stdin>", line 1, column 1\n\n  (koan)\n  ^----^\nHyMacroExpansionError: expanding `koan\': <cyfunction koan_macro at 0x10311e1d0> is not a Python function\n\n')[1]
    

======================================================================
FAIL: tests.test_bin.test_bin_hy_icmd
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/rokujyouhitoma/.virtualenvs/cythonize-hy/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/Users/rokujyouhitoma/workspace/github.com/hy/tests/test_bin.py", line 78, in test_bin_hy_icmd
    assert "monk" in output
AssertionError: 
>>  assert "monk" in u'\x1b[?1034h=> => '
    assert "figlet" in u'\x1b[?1034h=> => '
    

======================================================================
FAIL: tests.test_bin.test_bin_hy_icmd_file
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/rokujyouhitoma/.virtualenvs/cythonize-hy/lib/python2.7/site-packages/nose/case.py", line 197, in runTest
    self.test(*self.arg)
  File "/Users/rokujyouhitoma/workspace/github.com/hy/tests/test_bin.py", line 87, in test_bin_hy_icmd_file
    assert "Hy!" in output
AssertionError: 
>>  assert "Hy!" in u'\x1b[?1034h=> => '

まとめ

  • Hyとっても面白い。コードを読み進めたい& Land of Lisp のコードをHyで書きたい。
  • 簡単にCythonでビルドできた。Cython有能。
  • ちょっと検証コードが少ないので、もう少し試そうかな。
  • PyPyでHyの速度は気になるから、PyPyでも試してみたい。

歴史探求のメモ書き

松浦党研究連合会の末席で活動している池です。メモ目的で記す。

読みたい

読みたいが、入手が困難な文献一覧。

志佐物語、志佐記は古い文献であるため、閲覧難易度が高いだろう...。

市史については、あと数十年以内に再度編纂されるであろう or 国会図書館や県図書館に行くか...。

松浦党研究 N.XXは、所属先発刊なので、なんとか入手できそうだし、そもそもアマゾンでまだ扱われてるから、入手は容易そう。
入手できないとしても国会図書館に蔵書されてるので閲覧難易度は低い。

入手難易度高

  • 志佐物語
  • 志佐記
  • 志佐二世物語
  • 松浦叢書第一巻

入手難易度低

ウェブ

なんと、ウェブ上で読めるという幸せ(真贋は不明)

人物

  • 吉村茂三郎