2011年11月25日金曜日

Unity MonoDevelop 文字化け備忘録

結構探したのに、なかなか情報が無くて困った。

補足すると、
/Applications/Unity/MonoDevelop.app/Contents/Frameworks/Mono.framework/Versions/Current/etc/gtk-2.0/gtkrc
のファイルを修正する。

私の場合は、
font = "Lucida Grande 12"
ではなく
font = "Lucida Grande 14"
であった。
これは、最後の gtk-font-name = "Lucida Grande 12" の部分ではなく、途中に記述されている部分なので、注意が必要だ。
これの後に、
font_name ="Hiragino Kaku Gothic Pro 10"
を追加する。

2011年11月21日月曜日

近況など

時間がとれなくて、コーディングできてません。破綻してると思います。「アイデアの99%」最高に良いです。
 時々、自分の本の選び方とか、出来すぎてると思う事があります。あと、札幌ITリーディング(もうちょい戦略を持てという札幌市のIT企業強化事業)にて、都合良く、プロジェクトマネジメントのセミナーを受けて、3乗効果でインスピレーションを得たので、ビジョンを実現する事について書く予定です。
 休みの日は、坊ちゃんの相手で、趣味のコーディングどころか、読書すらままなりません。それは、それで、楽しいのですが...。
 と、まぁ、こんなところです。

2011年11月10日木曜日

WSDL2Ws Tool で再チャレンジ

WSDL2C で変換に失敗したスキーマを WSDL2Ws で再チャレンジ。結果は、やっぱりダメでしたが、まだ、こちらの方が希望が持てた。

 WSDL2Ws.java 中に以下のコメントが残されていたからだ…。
  //TODO the code require the attributes name at extension base types
  //different, the WSDL2Ws do not support it having same name at up and below.

  // The names of the inherited parms are mangled
  // in case they interfere with local parms.
  // String mangle = "";
  //if (i > 0) {
  // mangle = "_" +
  //  Utils.xmlNameToJava(te.getQName().getLocalPart()) +
  //  "_";
  //}


 ひっかかっているのは、xsd ファイル中の以下のような定義だ

   <xsd:element name="Add" type="ogc:BinaryOperatorType"
      substitutionGroup="ogc:expression"/>
   <xsd:element name="Sub" type="ogc:BinaryOperatorType"
      substitutionGroup="ogc:expression"/>
   <xsd:element name="Mul" type="ogc:BinaryOperatorType"
      substitutionGroup="ogc:expression"/>
   <xsd:element name="Div" type="ogc:BinaryOperatorType"
      substitutionGroup="ogc:expression"/>
   <xsd:element name="PropertyName" type="ogc:PropertyNameType"
      substitutionGroup="ogc:expression"/>
   <xsd:element name="Function" type="ogc:FunctionType"
      substitutionGroup="ogc:expression"/>
   <xsd:element name="Literal" type="ogc:LiteralType"
      substitutionGroup="ogc:expression"/>

まさに、type 属性が同じだけど、name 属性が異なるってやつだ。
はて、どうしたものか…。こいつら、大抵 enum で置き換えれそうだが、ソース吐き出すところまで全般に渡って手を入れないとダメそうだ…。とりあえず、スキーマを simpleType に置き換えて、後から enum にセコセコ修正する感じで逃げちゃうか?

axis cpp があった

 どうもリサーチ不足感は否めない…。よくよく探せば、Axis C++ バージョンがあった。

どいつもこいつも、ジェネレータが出力するコードが C なんで、階層が深いと、入れ子のメンバー要素を取得|生成して、その入れ子の要素を取得|生成して、そのまた入れ子のメンバー要素を取得|生成して、そのまた入れ子の要素を取得|生成してってーーーーー長いっちゅうねーーーーーーーーーーーーーん。

 こいつら全部ポインタです。しかも型が全部違うんで、再帰もできません。C 死ね。C 死ね。C 死ね。C 死ね。
C 死ね。C 死ね。C 死ね。C 死ね。
C 死ね。C 死ね。C 死ね。C 死ね。
C 死ね。C 死ね。C 死ね。C 死ね。
C 死ね。C 死ね。C 死ね。C 死ね。
C 死ね。C 死ね。C 死ね。C 死ね。

 それで、WSDLからのコードジェネレータは、どこにあんねーーーーーん!って、探したら、ありました。WSDL2WS-Tool です。

 という訳で、振り出しに戻ってます…。

2011年11月9日水曜日

cスタイル整形備忘録

自動生成されるコードの修正を結構やらなきゃいけない場合、スタイルが無茶苦茶だとしんどい。
astyle を使用する。

apt-get install astyle

とりあえず、K&R スタイルで整形するなり…

#!/bin/bash
for file in *.c
do
  astyle --style=kr -s2 -cc < $file > ${file%c}cc
done
for head in *.h
do
  astyle --style=kr -s2 -cc < $head > ${head%h}hpp
done

2011年11月6日日曜日

boost 勉強会 in 札幌に参加してきた

 講師陣の皆様、ありがとうございました。まずは、お礼を申し上げます。
まず最初は、cpp_akira さんの boost::geometry の話。コンセプト・ベースの部分は、設計の思想を知らないと使えないので、非常に為になる話でした。余談ですが、仕事上、geometry 系は使ってはいます。ただ、データ構造の関係でインナーポリゴンを一筆書きで扱っている事もあって、どちらかというと、boost::polygon の方でないと現状と合わないので、導入には至っていません。他には、図形の演算はデリケートな面があり、特にユーザさんが入力するデータや既存のデータには、恐ろしい構成点の組み合わせ(例:ポリゴンが閉じてるけど1点オーバランしている、穴空きポリゴンを一筆書きで表現しているが回しがねじれていて時計回りでも反時計周りでもない)への対応をしている。などがあります。挙動が変わると、まずいので、なかなか、切り替えるのも大変だったりします。後で、函数型のparaisoが刺激的で面白かったよという話をしたのですが、一応リンクをはっときます。

 で、uskz さんによる圏論のお話...圧倒的に会場を置き去りにして(と思う)、熱くHaskellいいよとまとまりました。個人的には、c++にはstd::cout やglobal 変数を更新するという恐ろしい函数の副作用がありますという次に、World が出てきたところがウケてました。先の並列化という面で考えれば、concept ベースのデータ構造に依存しない設計アプローチは、SIMDのような並列化とは相性が悪いのかな?と漠然と考えてました。

 fadis_さんのContainerFacade、微妙に違いのあるコンテナに対して、なるべく少ない手数でアルゴリズムを実装できるようにしようという話でした。ベースにあるのは、stlではイテレータを介してコンテナにアクセスしているから、コンテナの要素を挿入/削除するような事ができない、そこで、なるべく多くのコンテナに対してコードの補完ができるようにしようというものです。聞いてて思ったのは、リンクドリストのような構造のものに2分探査のアルゴリズムを実装しても全くの無駄なので、このアプローチは便利なように見えて、実は良くないだろう...でした。この辺に対して考慮をし、合わないアルゴリズムは、コンセプトを満たしていないからエラーにするといった改良を加えれば、面白いのかなぁという感想です。すかさず、cpp_akiraさんが、ダメ出ししていたので、さすがだと感じました。

 DigitalGhost さんの Template MetaPrograming as 式 DigitalGhostさんワールドが展開されていたような...質問も無いですよね?で終了されてたのが、ウケてました。

 主催者のhotwatermorningさんのPStade.OvenとEggの実装を読む ソースの追い方がデジャヴな感じで、面白かったです。あっち読んで、こっち読んで、考えて、またあっち読んで...確かに、Eggを読むのはしんどそうです。

egtraさんの char32_tとBoost.Xpressiveと、char16_t, char32_t ができたので、それを使いましょうという話で、文字コード変換が iconv か ICU 以外に特にライブラリが無くてどうしよう?という切実な訴え...道化師さんの babel もあるけど...不便には違いないです。windows に限定すれば文字コード変換のようなアプローチもあります。wconv.hpp は最初に書いた時点からは、若干設計が変わっていて、特殊化によってUNICODEとコードベース間の変換コードがカスタマイズできるよう考慮が加わってます。xpressive の対応の話も興味深かったです。これも、余談ですが、Linux で FreeType2 を利用した時は、char16_t でないと使えなくて、-fshort-wchar オプションを使用しました。

 Kikairoya さんの 組み込みでこそC++を使う100の理由 C++偏執狂には、面白すぎて、爆笑しまくり。楽しかったです。組み込みの世界のわからないチップの話を質問されて、例外とRTTIをオフにすれば、ooバイトぐらいに収まるので大丈夫ですと即答されていたのには、スゲーと感心してました。懇親会では、別の方KさんからチップセットのコンパイラがC++に対応していない実情もあるのでやむを得ない場合もあるけど、c++のコンパイラに通すと、型チェックを行ってくれるので有効な手法に間違いないという情報も得ました。

 redbolzさんの Boost.MSMの使い方 白状すると、ユースケースの中で、ステートチャート図だけは、何を書いていいのかさっぱりわかんねぇ状態の私には、耳が痛い話でもあり、有用な話でもありました。UMLからBoost.MSM のひな形コードを生成するツールに興味のある方は、ちょっと飲み会で話をしましょうとの事でした。

 ライトニングでは、道化師さんの #include の話、#include だけで、あそこまで話を引っ張れるのが凄いです。何でも、後から5分だよと聞かされて、ボリュームを減らしたのだとか...(^^;
懇親会でも、いろんな方と話ができて楽しかったです。

 皆さん、ありがとうございました。

追記:ひとつ、思い出しました。boost base64 への変換の実装は、iterator を利用しています。そのため、最終のバイト境界が3バイト以外では、終端を正しく終える事が出来ていません。Fadis_さんの ContainerFacade のアプローチならば、これをうまく扱えるのではないか?と感じました。

2011年11月3日木曜日

いろいろ

 毎度の事ながら、いろいろで...
「東電陰謀説は、実は文部科学省〜経済産業省の引き起こしたブーメラン効果」というエントリーを上げようとしたけど、見つからないリンク先とかあって、めんどくさくなり、ポストするのをやめた。教育、広告、広報活動、手の込んだやらせ、歪曲した推進のための資料など、こんだけやってれば、ブーメランで返ってくるだろうという趣旨。記録に残っているものとしては、ウィキペディアのホルミシス効果の編集履歴などを見れば、面白いのではなかろうか、お暇な人はどうぞ。

 考えてもみれば、ローカルBBS時代から、「朝のガスパール事件」など、この手のネガティブな芸風は確立されていたわけです。文字だけの対話には、ニュアンスの情報が無い上に記録に残されるので、受け手のちょっとした感情が増幅されてしまうのではないか?とも思います。もしかしたら、ニュアンスに文脈が託された日本語固有の問題なんじゃ?という気までします。梅田望夫さんが、日本残念と語った背景は、案外こんなところなのかも?と感じる今日この頃です。

 東京出張で、地方自治情報化推進フェアと全国SaaSベンダー連合会に行ってきました。クラウドビジネスは、もう定着しつつあると感じました。かなりレッドオーシャンな感じです。そろそろ違う事も考えないと、駄目そうです。変化、速すぎ。出張レポートをまとめつつ、現実逃避の書き込み...です

 本を買ってきました。
アイデアの99%」成功しないアイデア(ビジネス)には、何の価値も無いという事を肝に銘じよう

任せる技術」代替できない部分は置いて、代替できそうな部分は任せないと...苦手な部分は再考しよう

AsOne」本当は、こんな組織を目指さなきゃ駄目なんだろうなぁという趣旨

リーダーの条件が変わった」現状の再確認

年金は本当にもらえるのか?」河野太郎先生の指令、国民も勉強しましょう。

BCG流経営者はこう育てる」参考のため

諸行無常を生きる」震災をテーマにした本。大震災を前にして、諦めるという態度は、前向きに強く生きるという態度でもある。この言葉に惹かれました。

 今週末の土曜日は、札幌 Boost 勉強会。なんか、いいネタ無いかなと思いつつも、移り気で、何一つものにならず...(汗)余裕無い中、講師陣の皆さん、今頃、必死こいてるのかな...