Ads by Google
新しい記事を書く事で広告が消せます。
AquesTalk が凄すぎる
音声サンプルのページから合成音声が聴けマス。
このクォリティで共有ライブラリのサイズがたったの 108KB って...すごすぎ。
Win 版のライブラリがフリーで公開されているようなので今度遊んでみようかな。
商用利用可だそうです。なんて太っ腹な!
このクォリティで共有ライブラリのサイズがたったの 108KB って...すごすぎ。
Win 版のライブラリがフリーで公開されているようなので今度遊んでみようかな。
商用利用可だそうです。なんて太っ腹な!
総行数 1/36 (C++ → D)
正規表現の勉強も兼ねて、D に慣れるために std.regexp を使ってサクッと .mqo 2 .lua (.nut) コンバータ [雫] を書き直してみることに。まだ作業途中だけどもうすぐ終わりそう。ぬぉぉ!開発がこんなにスムーズに進むなんて…!なんだか久しぶりにワクワクしております。
コンバータの字句解析器 (Lexer) の部分の話。C++ で書いてた頃は 1 行ずつ自力で字句を分解していくという非常に漢らしい手法を取ったために 180 行ほど消費しておりました。boost::tokenizer や boost::regex を使えば短くまとめられそうだけど、まあそこは若気の至りということで...。
D で書いたら 5 行で分解できました。ゴフッ。
総括: 正規表現って便利だね!
コンバータの字句解析器 (Lexer) の部分の話。C++ で書いてた頃は 1 行ずつ自力で字句を分解していくという非常に漢らしい手法を取ったために 180 行ほど消費しておりました。boost::tokenizer や boost::regex を使えば短くまとめられそうだけど、まあそこは若気の至りということで...。
D で書いたら 5 行で分解できました。ゴフッ。
これで *.mqo *.mki *.mkm に記述されたデータを読み取ることが出来ますな。そうなれば後はモデルデータを構築するのみ。01:foreach (char[] line; fin) {
02: foreach (m; RegExp(`(\-?\d+\.?\d*)|(".+")|([_a-zA-Z][_a-zA-Z1-9]*)`).search(line)) {
03: dout.writefln("%s[%s]%s", m.pre, m.match(0), m.post);
04: }
05:}
総括: 正規表現って便利だね!
環境構築 4 D
今のところ SDL, SDL_ttf, SDL_image, SDL_mixer, OpenGL まで動作確認済み。他に Mist Engine で使っていたものといえば SMPEG, SDL_sound, SDL_net, GLEW, OpenAL, Lua (Squirrel に変更?) くらいかな。
D - porting の OpenGL について。
D - porting の OpenGL について。
dmd を ver.1.014 のブツと差し替えたのですが、D 1.011 で予約語 inout が ref に変更されたので、-v1 オプションを付けずにコンパイルすると上記の行で怒られる羽目に。というわけで引数名を ref から cref (適当) とかに書き換えれば幸せになれマス。// opengl.d //
1119: void /*APIENTRY*/glAlphaFunc (GLenum func, GLclampf ref);
1372: void /*APIENTRY*/glStencilFunc (GLenum func, GLint ref, GLuint mask);
Cpp 2 C 2 D
* click to jump * (2行目に .zip へのリンクがあります)D はじめました。
最近書いた記事の続き。
C++ で書いたライブラリだって D からも使えるんじゃね?と思って作ってみたのですが三年前に shinh 大先生がやっておられました。詳しくは特設ページにて。
最適解じゃなくていい、局所解でもいいんだ
10個くらいしかないけどファイルのリネームめんどくさーと思い Squirrel の練習がてら Squirrel Shell でこういった作業を自動化する汎用的なスクリプトを書こうと試みるもファイルの新規作成すらめんどくさくなり結局その場でコンソールを開いて 1 行だけほげほげしたらあっさりと任務完了してやったーうわーいとか思いつつどう考えても最初から手動でやったほうが早かったよな量的にと自分でツッコミを入れながらよく分からないカタルシスを感じてたんだけど今考えるとあれは一種のカタストロフ感だったのかもしれない (棒読み)
無名関数ならぬ無名スクリプトというか。
ワンライナーってカッコいいなぁと思った。使い捨てる感じが。
無名関数ならぬ無名スクリプトというか。
ワンライナーってカッコいいなぁと思った。使い捨てる感じが。
ConceptArt.org
* click to jump *© David Levy "Vyle"
|| Spacetime Studios
|| Art Director and Conceptual Designer
コンセプトアーツ。
海外。
phonondrive
* click to jump *Reason をはじめるキッカケを作ってくれた紳士。
ロゴのデザインは Illustrator で文字のカンマを組み合わせて p と d を表しているとのこと。SDL OFF のときに教えてくれた。ユニークな発想に憧れる。
るびま。
もうね、超乙っていうかマジありがとね
早く D (言語) がメインストリームにきちゃってください。
C 関数との文字列の受け渡しがちとめんどいけど、もう Pascal 形式のほうが正しい文字列の扱い方のような気がしてきた。愛があれば乗り越えられる。あとソースの文字コードも UTF-8 に統一しちゃってもいいよくらいの勢いでどうぞ。
何気に D も言語仕様がデカいけど、C++ に比べると機能が洗練されているなぁと。(C++ の) 例外指定とか使ってる人ってこの地球にはあまりいないような。バグの温床になりかねないし。
C++ はあらゆる場所で使われているけど、実験的な言語のような気がする。生産性は D のほうが上だよね。と、ここまで書いて
C++ には「お前ら OOP しろよ」という空気が漂っているけど、D にはそれが無いのがイイネ。真の意味でマルチパラダイム。
C 関数との文字列の受け渡しがちとめんどいけど、もう Pascal 形式のほうが正しい文字列の扱い方のような気がしてきた。愛があれば乗り越えられる。あとソースの文字コードも UTF-8 に統一しちゃってもいいよくらいの勢いでどうぞ。
何気に D も言語仕様がデカいけど、C++ に比べると機能が洗練されているなぁと。(C++ の) 例外指定とか使ってる人ってこの地球にはあまりいないような。バグの温床になりかねないし。
C++ はあらゆる場所で使われているけど、実験的な言語のような気がする。生産性は D のほうが上だよね。と、ここまで書いて
shinh さんのこの言葉を思い出した。そしてその D 言語に、どういった機能が言語にあるべきか、という様々な教訓を与えたのは C++ という言語だと思います。
C++ には「お前ら OOP しろよ」という空気が漂っているけど、D にはそれが無いのがイイネ。真の意味でマルチパラダイム。
