プログラミングやる前に先お風呂はいっちゃいなさい

169月/080

べ、別に俺、ツンデレとか好きじゃねえし!

今日というか、日付的には昨日ですね。

やったことといえば、PostgreSQLとの熾烈な戦いです。

もともと、プロジェクト管理ソフトの9arrowsを試してみたかったんですよ。
プロジェクト管理というか、タスク管理というか、そんなソフトを後に作りたくて。

なんですが、この9arrowsを実行する環境づくりにめっさ足を取られて、ちょっと軽い気持ちで試すつもりが一日潰すという…。

とても熾烈な戦いだったため、記憶の一部が欠落しております。
本当は、このブログにログを残すつもりでしたが、色んな事やったのでどれが正しかったのか正直謎です。

色んなサイトを見ながらやって、Ruby on RailsとかRubyGemsとかRubyのPostgreSQLのアダプタとかはすんなりインストールできたんですよ。
ただ、PostgreSQLを運用するためのphpPgAdminとPostgreSQLの設定にすごいてこずりました。
phpPgAdminのページに接続してもデータベースに繋げられない模様。ログインしようとしても失敗する。
ちゃんとIDもパスワードも合っているのに失敗する。そんな現象です。

以前、phpMyAdminとMySQLはすんなり入ったので、そのノリでやってたら、全然だめ。

どうもキモとなる設定がここらへん。

  • phpPgAdmin/conf/config.inc.phpの設定
    • $conf['servers'][0]['host'] の部分(ドメイン名かIPを設定、ローカルの場合はlocalhost)
    • $conf['extra_login_security'] = true の部分(true -> falseに変える)
  • PostgreSQLの設定
    • pg_hba.confの設定
      • 認証モードをidentでなく他のもの(passwordとか)にする

ここらへんを気をつけてやれば、きっと上手く行きます。

もしも、設定が上手く行かなくて、検索したらこんなブログに引っかかってしまった、そこの君。
ここら辺を気をつけましょう。

そんなわけで、ひまころじーV2というプロジェクトは、今日はあまり進んでないのです。

Soundクラスを拡張するクラスであるBGMクラスを作って、ループ再生ができるようになったのと、BGMのフェードアウトをTweenerを使ってできるようにしたくらい。
ちゃんと聴覚特性を考慮して、フェードを指数関数的に音量を下げるようにしてみた。それが正しいかどうかはさておき。どうなんだろう?

Tweener便利だね。動作比較の上では遅いらしいけど。(比較サイトの所在を忘れてしまったのでリンクが見つかりませんが、速度比較を行っている方がいました

書いてみて気づいたけど、フェードインも作らなきゃね。考えてなかったけど。

ファイルのロードなんかを最近作っているんだけど、ActionScriptでThreadを使えるようにする、ActionScript Thread Library 1.0 (そうめん)ってライブラリがあるらしく、このライブラリを使うともっと簡単に実装ができそうなので検討中。

さて、今日はそんなとこです。今週中にはファイルのロードやらを完成させたい。進捗表示も頑張って作るぞ。

129月/081

BindingUtilsの使い方

この記事も、以前のはてなで書いた記事をほぼ転載してます。

まあ、移転作業というわけです。

さて、Flexでとても便利なバインド機能についてです。
MXMLで{}を使って書くやつ。
値が更新されるとバインドしたとこも更新されるアレですね。

以前、この機能をMXMLでなくてActionScriptで使いたいと思って調べてみたところ、あまり情報が無かったんでブログに載せたのかと思います。

ってことで、ActionScriptからバインド機能を使う方法です。
あらかじめ断っておくと、{}で簡単にバインドはできません。

さて、ActionScriptからバインドを使うにはBindingUtilsというクラスを使います。

こいつはbindPropertyってメソッドをstaticに持ってますんで、そいつを使います。

こいつを使って、たとえばLabelのtextにClassAのhogeプロパティをバインドしたい場合はこんな感じ。

 var label:Label = new Label();
 var classA:ClassA = new ClassA();
 BindingUtils.bindProperty(label, "text", classA, "hoge");

こんな感じ。注意点としてはClassAクラスがhogeプロパティを定義するときにちゃんとbindableとして定義してあること。

class ClassA {
  private var _hoge:int;
  public function get hoge():int {
    return _hoge;
  }
  [Bindable] public function set hoge(value:int):void
  {
    _hoge = value;
  }
}

こんな感じですね。こうしてあれば、ClassAのhogeの値が変更されるとさっきのLabelのtextも変更されるわけです。

ただ、ここまでは割とネット上に情報がありました。
僕がやりたかったのは、式をバインドする場合。

{}を使ってた時は式を入れてもちゃんとバインドされたんですよ。

ということで、式をバインドする場合。
例えば、hogeの2倍をLabelのtextに表示するときはこんな風に書きます

 var label:Label = new Label();
 var classA:ClassA = new ClassA();
 var paramObject:Object = {
   name: "hoge",
   getter: function (host:*):String {
    return 2 * host["hoge"];
   }
 };
 BindingUtils.bindProperty(label, "text", classA, paramObject);

こうすれば、式がバインドされます

{
 name: property名,
 getter: function (host:*):String {
  return host[property名];
 }
}

nameとgetterって名前のプロパティを持ったこんな形のオブジェクトを第4引数に入れるといいんだとか。

時間があったらもうちょい調べてまた書くことにします。

Tagged as: 1 Comment
99月/080

タラちゃんが敬語なのはマスオさんの影響説

先日、ちょっと友達にお願いして、ひまころじーサイトリニューアル素材として写真をいくつか撮ってもらいました。

僕のリクエストとして、森・木々から見る空という自由度をきかせた、、というより大雑把なものを提示したのですが、そこは流石僕の友人。
通称、スーパー雑用。他の友人からも高い評価を受けているだけのことはあります。
なかなかいい写真が撮れています。

という事で、写真をいくつか選別してみました。

リクエストし忘れた事として、人工物を移さないで欲しい、というものがあったのですが、時既に遅し。
Time waits for no one.
↑(゜Д゜)ハァ?

そんな基準で選別してみました。

まずは、優秀賞から。

鉄塔

鉄塔

おい、人工物やん。

はい、僕は鉄塔が好きなんです。だから、ひまころじーには使えないけど、この写真が好きなのです。

だから、優秀賞。

とくに、暗がりから鉄塔を見る感じがGOOD。

では、次に実際採用しようかと思っている写真。

グランプリ。

森

多少、道らしきものはありますが、ほぼこれがリクエスト通りかつ相応しいであろう写真です。

ひまころじーのイメージは森です。

うっそうと茂った森に足を踏み入れ、歩くうちに誰かの世界にたどり着く。
その世界を遊び、また森へと戻っていく。
森を抜けると今度は違った世界にたどり着く。

そんな感じ。

ということで、僕はそろそろ会社に行きます。

ちなみに、仕事でもプログラマーです。

昨日、お姉ちゃんに命令されて眠れない・ヤンデレに愛されすぎて眠れない・妹にまとわりつかれて眠れないCDをiPodに入れて仕事中聞いてたら、眠くならずに仕事ができました。
でも、そのおかげで上司に、時々ニヤニヤしているがなんでだ?と質問されました。

はい、落語を聴いているからです!

眠れないCD、効果は素晴らしいが諸刃の剣。