ねぎはみ

●予定は未定 チケットをただの紙切れにしないために・・●















 

12-01-10 スクリプト言語好き

Macrubyのサンプルコード場所自分メモ13:06

以前の日記で紹介した「MacRuby The Definitive Guide」に連動したサンプルコードは以下の場所にあります。(無料で公開されているMacRuby The Definitive Guideのフリー記事の中にリンクが書いてあります

MacRuby The Definitive Guideの記事に連動したサンプルコード。へのリンク

サンプルコードダウンロードしてxcodeで実行するまで 13:06

注意:以下のほうほうが正しい方法かは判りません。とりあえず、以下のようにしたらアプリが動いたって程度の情報です。


上記のサイトのサンプルコードダウンロードするのは以下の通り。
f:id:KajiJUN:20120110125928p:image:w640
f:id:KajiJUN:20120110130326p:image:w640


で、ダウンロードしたもの解凍し、各章毎にフォルダが出来てますので、試しに第2章のサンプルコードxcodeで開いてみます

f:id:KajiJUN:20120110131304p:image:w640

で、なにも編集せずにビルドをしてみると以下のようにfailに成りビルドが完了出来ません。

f:id:KajiJUN:20120110131715p:image

メッセージとしては

Shell Script Invocation Error
Command /bin/sh failed with exit code 1

このエラーを無くすには、以下のように操作しEdit Scheme を開きます
f:id:KajiJUN:20120110133339p:image
f:id:KajiJUN:20120110133709p:image

次に下記にあるように?→?の順番でクリックすると・・・

f:id:KajiJUN:20120110134347p:image

このように表示されるので、demoを追加します

f:id:KajiJUN:20120110134939p:image

すると、以下のような表示になるハズです。
f:id:KajiJUN:20120110135309p:image

その後に以下のようにビルドする対象をdemoに切り替えます
f:id:KajiJUN:20120110140439p:image

そしてビルドすると、とりあえずdemoアプリが起動されます

f:id:KajiJUN:20120110140606p:image

トラックバック - http://d.hatena.ne.jp/KajiJUN/20120110

12-01-07 MacrubyでUser agentの変更

サンプルアプリ 16:53

私が今回作ろうとしてしているのは、ある程度マウスカーソル制御(mouse control)が出来て、かつWeb が見れるアプリ・・・と思っていて、似たような機能のサンプルコードが無いか探してみたところ、こちらに凄く似たような機能macrubyで実装されたサンプルコード(Farmville Clicker:イイねを自動クリックする??)があって、歓喜しました!

作者の方はメキシコの方のようですが、このような有用なサンプルコードを公開してくれていることに感謝ます。(メールでいちお、感謝の意を伝えました)

ちなみに上記にソースコードビルドするとこんな感じのウィンドウが開いて、コマンドEを入力後にマウスクリックすると、あるオフセット値に従ってマウス自動で移動して、クリックする動作が自動で行われますf:id:KajiJUN:20120107164112p:image:w640

webviewのUserAgentを変更する。 16:53

p4youのサイトを観るために、UserAgentを携帯ブラウザiPhoneに変更する必要がありますが、どーやってやれば良いんだろってことでググってみると以下のサイトに辿りました。

    # Set the user agent to Safari, to ensure we get back the exactly the same content as
    # if we browsed directly to the page
    view.setCustomUserAgent 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-us)' +
        'AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10'
で、上記を参考にfvClickerのWebClickerController.rb を以下のように編集
class WebClickerController < NSWindowController
    attr_writer :webview, :window
    attr_writer :width, :height, :speed
    attr_accessor :is_active, :skip_center
    
    def awakeFromNib
        @webview.setCustomUserAgent 'Mozilla/5.0 (iPhone; U; iPhone OS 4_3_3; en-us)' +
        'AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10'
        @webview.mainFrame.loadRequest(
            NSURLRequest.requestWithURL(
                NSURL.URLWithString("http://p4you.net/pedi***/")))
    end


上記にようにUser Agentを変更することで、下記のようにp4youのサイトが見えるようになりました。

f:id:KajiJUN:20120107165043p:image

トラックバック - http://d.hatena.ne.jp/KajiJUN/20120107

12-01-06 始めました。

Macruby勉強し始めました。 01:36

スマフォ端末で、ほんとはp4youの申し込みをもっと簡単にするアプリをとか思ったんだけど、スマフォだとそもそもカーソルが無くて(androidだと外部マウス接続できるけど)、カーソル制御は大変そうなので、スマフォアプリは早々と諦めまして、まずはマックデスクトップアプリを作ってみようと思い、そのプログラム言語としてmacrubyを選んでました。

それと、そもそもp4youの入力項目ってみんな一緒なのか確認してみたら、全然違っていたので、ちょっとビックリ。試しに今現在受け付けているAKB用のサイトだと、ログイン直後の画面はこんな感じ。

f:id:KajiJUN:20120107013253p:image:w360

ハローのように、メンバーの誰がスキで、ファンクラブ会員かってことは聞かれないようです。ジャ○ーズだとまた違うでしょうね。

macrubyウィンドウ表示を出すまで。 01:54

下記ではMainMenu.xibのクラス名を編集みたいに書いてますが、実際にはデフォルトのNSViewのままでも、ウィンドウはちゃんと表示されました。

githubとかに置いてあるサンプルプロジェクトだとClassesってフォルダが出来ているケースが多いように見えるだけど、こちらの環境(OSX10.6+macruby0.1)ではそのフォルダは作られないので、その他のサンプルアプリに習って、Supporting Filesの下にruby用のファイルを追加してみる。
f:id:KajiJUN:20120107015229j:image:w360
f:id:KajiJUN:20120107015339p:image:w360

そしてGUIを規定しているMainMenu.xibのウィンドウに対してのクラス名を変更して、それと同じクラス名を最初に追加したrubyファイルの冒頭に < NSViewも付加して追記する。

f:id:KajiJUN:20120107021503p:image
ここまで記載した後にビルドすると、ウィンドウが開くハズ(たぶん、うちではこれで開けました)
参考にしたのは以下の書籍。(はやく日本語版出て欲しいなぁ)

MacRuby: The Definitive Guide

MacRuby: The Definitive Guide

トラックバック - http://d.hatena.ne.jp/KajiJUN/20120106

12-01-04

本年もよろしくお願いいたします。

自分メモ:トラブった時は時間を開けず、その時に書かないとダメですね。 14:50

自分用のメモを描こうと思って振り返りながら書いていたのですが、どうにも上手く行かなかった際の現象が再現できないので諦めました。スイマセン

トラックバック - http://d.hatena.ne.jp/KajiJUN/20120104

11-12-29

宮本佳林ちゃん! 10:11

みなさん!アマゾンで販売しているコピンク名義で宮本佳林ちゃんが歌ってる「カリーナノッテ」がマジ名曲なので皆さん是非聴いてみてください!

サンプル動画を貼っておきますね!

D

カリーナノッテ

カリーナノッテ

プログラミング 09:56

FireFoxのaddon作成に挑みちゅう。
とりあえずオライリーFIREFOX HACKS REBOOTEDを買ってきて開発環境を構築中。
本のとおりやってるつもりなんですが、上手く行かなかった点と(この方法で正しいか判りませんが)解決できたので、すこしづつ自分メモ
とりあえずこちらの環境Mac OS X 10.6、Python最初から入ってる2.6.1を使用。

FIREFOX HACKS REBOOTED 105〜106 Page 09:56

cfx run コマンドブラウザが立ち上がるハズ・・とあるのですが実際にやってみると・・・

(addon-sdk-1.3)****-no-iMac:sample-addon ***$ cfx run
Traceback (most recent call last):
  File "/Users/home/addon-sdk-1.3/bin/cfx", line 29, in <module>
    cuddlefish.run()
  File "/Users/home/addon-sdk-1.3/python-lib/cuddlefish/__init__.py", line 678, in run
    sdk_version = get_version(env_root)
  File "/Users/home/addon-sdk-1.3/python-lib/cuddlefish/version.py", line 4, in get_version
    f = open(os.path.join(env_root, ".version"), "r")
IOError: [Errno 2] No such file or directory: '/Users/home/addon-sdk-1.3/.version'
と表示されうまく行かず、.versionファイルは無かったです。
そこでエラーキーワード適当にググって以下のところに以下のように書いてあったので、そのままやってみたら上手くいきました。
I have investigated the problem. Do you have the .version file in your addon-sdk-1.0/ directory ? If not create one with ...

$ echo "1.0" > .version
なので、そのまま $ echo "1.3" > .version  と入力して .versionファイルに1.3(多分Addon SDKバージョンを書き込むのだとうと適当に推測して)を書き込んで再度コマンド入力したところ、本に書いてある通りにブラウザが立ち上がりました。

FIREFOX HACKS REBOOTED 108〜117 Page 15:20

とりあえず、サンプルコードをそのままダウンロードして、Translator JP拡張機能を動かしてみたいんだけど、英文字を選択して、addonのTranslate into Japanese を選択すると、コンソールに以下の表示が出て、うまく動きませんでした。

error: An exception occurred.
Traceback (most recent call last):
  File "resource://jid1-sbgmuzvjg3ctag-at-jetpack-translator-jp-lib/main.js", line 18, in 
    var translated = response.json.responseData.translatedText;
TypeError: response.json.responseData is null
そこで、116pに書かれているようにソースコードの途中にログ出力するように以下のように足してみたところ・・・
		onMessage: function(sel) {
            console.log("selection: " + sel);
			 var req = request.Request({
				url: "http://ajax.googleapis.com/ajax/services/language/translate",
				content: { v: "1.0", q: sel, langpair: "|ja" },
				onComplete: function(response) {
                    console.log(response.json.toSource());
					console.log(response.json.responseData.translatedText);
					var translated = response.json.responseData.translatedText;
					selection.text = translated;

ログには以下のような出力が・・・
info: ({responseData:null, responseDetails:"Suspected Terms of Service Abuse. Please see http://code.google.com/apis/errors", responseStatus:403})
error: An exception occurred.
Traceback (most recent call last):
  File "resource://jid1-sbgmuzvjg3ctag-at-jetpack-translator-jp-lib/main.js", line 20, in 
    console.log(response.json.responseData.translatedText);
TypeError: response.json.responseData is null


うーむ、なんか翻訳サービスから「疑わしい利用規約乱用」とか言われてるみたいなんだけど・・・これってこのメッセージで出てくる翻訳サービス有料化と、なにか関連してるんですかね?あんまり深追いしても時間無駄っぽいので、次のaddon に進んだほうが良い気がしてきた。

トラックバック - http://d.hatena.ne.jp/KajiJUN/20111229