jsonでつまりまくった

10月 6th, 2010

おこんばんわ

つかれた

そこから。

エキサイトブログから記事を引っ張ってくる、って簡単だと思っていたけど、

tonさん(twitter)にエキサイト以外からのドメインが排除されているって教えてもらい、

有為さん(twitter)にgoogle.feeds.Feedを教えてもらった。

説明は、、、サイトに飛んでくだせぇ。

_loader = new URLLoader ();
_loader.load ( new URLRequest (
    "http://ajax.googleapis.com/ajax/services/feed/load?" +
    'q=' +
    encodeURIComponent("http://rss.exblog.jp/エキサイトブログのRSS") +
    '&key=---APIKEY----' +
    '&v=1.0'
));
_loader.addEventListener(Event.COMPLETE, Loaded);

まぁ、引っ張ってきて、ロードが終わるとって

as3corelibで何やかんややってもなかなかうまいこといかなんだ。

で最終的には下記

private function Loaded(e:Event):void
{
    var _json:String = URLLoader(e.currentTarget).data;
    var _news:Object = JSON.decode(_json);
   
    var _array:Array = _news['responseData']['feed']['entries'];
           
    trace(_array[0]["link"]); //URL
    trace(_array[0]["title"]); //記事タイトル
    trace(_array[0]["publishedDate"]); //投稿日時
    trace(_array[0]["content"]); //記事内容
}

だぁ!深い!深すぎる。

むー。

お世話になったサイト

feb19.jp blog

徒然なるままに

ありがとうございます。

あへー

定点観察

9月 13th, 2010

定点観察、が面白い。

定点観察もどきかもしれない。

一つの視点、その物語。

20100912

http://gaina-laboratory.com/video/

「夜に動きはないけど、信号機の点滅、雲の移動、そして、眼下にあるホテルのネオンが消える。」

次は、何を撮って、省略して、物語にしようかな。

interface

8月 8th, 2010

Interfaceって何ぞや?

って思ってましたよ。

実装しなければいけないもんを枠として備えている、って感じでしょうか?

package  
{
    public interface InterfaceTest
    {
        function sampleTest(str:String = ""):String;
    }
}

というインターフェイスがあって、これを実装(implement)するとなった場合

package  
{
    public class TestClass implements InterfaceTest
    {
        public function TestClass(str:String="") {}
       
        public function sampleTest(str:String = ""):String
        {
            return str + "\.unko";
        }
    }
}

となるわけで、このTestClassにsampleTest()がなければ、エラーになる。
インターフェイスに、もし、

public function sample02(str:String=""):String

があったとすれば、TestClassにはその記述がないので、エラーになる。
ほほう。
「絶対実装したいメソッドやらを入れなくてはいけない」場合、「入れ忘れ防止」になるわけですねー。
ほほほう。
上のインターフェイス・クラスを使って

package
{
    import flash.display.Sprite;
    import flash.text.TextField;
   
    public class Main extends Sprite
    {
       
        public function Main():void
        {
            init();
        }
       
        private function init():void
        {
            var unko:TestClass = new TestClass();
            var tf:TextField = new TextField();
            tf.text = unko.sampleTest("unko");
            addChild(tf);
        }
    }
}

をつくってやると・・・

[study] – interface – wonderfl build flash online

こうなるわけですね。
ほうほう。
簡単ではありますが、インターフェイスってなんぞ?
のお話。
ちょっと理解しましたよ。

test

8月 5th, 2010

test

↑ここをクリックすると、PDFが開くよ。

soundspectrumとbytearrayと私

7月 2nd, 2010

音、って面白うございます。

そうです。

大重先生の本

に書いていたのを読んでモフモフするのが楽しくて。

SoundMixer.computeSpectrum

で情報をbytearrayに入れて、

256×2=512個の情報で遊ぶって。

512個の配列を作って、やればいい感じ。

soundtest5 – wonderfl build flash online

こんな感じになりました。

でも、こいつは、他の音楽がPC上にあればエラーになるという、

なんて、使い勝手の悪いやつなんだ!

と、思うのです。

AS3とPHPと渡し(ワタシ)

6月 23rd, 2010

flashでお問合せフォームを制作するとなったので、そのメモ。

使用するやつは

URLBaliablesさんです。

flash.net.URLVariablesさんです。

こいつにURLRequestを入れてモフモフするのですよ。

適当にボタン作って、TextInputとかで入力部分作って、ボタン押したら関数実行プレイ

private function sendToPHP(event:MouseEvent ):void
{
    var variable:URLVariables = new URLVariables();
    variable.name = name_text;
    variable.mail = mail_text.text;
    variable.mail_check = mail_check.text;
    variable.comment = comment.text;

    var urlReq:URLRequest = new URLRequest("url"); //PHPのパスですYO
    //urlReq.url = "url";でもOK
    urlReq.method = URLRequestMethod.POST;
    urlReq.data = variable;

    var loader:URLLoader = new URLLoader();
    loader.load(urlReq);
    loader.addEventListener(Event.COMPLETE, phpfileLoaded);
}

private function phpfileLoaded(e:Event):void
{
    trace(e.target.data);//戻り値でモフモフする感じ
}

でPHP側

    $name=$_POST['name'];
    $mail=$_POST['mail'];
    $mail_check=$_POST['mail_check'];
    $comment=$_POST['comment'];

    echo $name."\n".$mail."\n".$comment;

とでもすると、e.target.dataに$name.”\n”.$mail.”\n”.$comment;の値が入るっていう、ね。

僕はphpでメールチェックとかエラーチェックして、

エラーがあれば、エラーの値を表示する変数をecho、

エラーなければmb_sendmailして、適当な文字でもechoで吐かせて、phpfileLoaded関数内で条件使ってどうのこうのしました。

はい。

XMLをPHPで吐かせて処理するのがいい!みたいなことを書いてる方もいらっしゃいましたね。

確かに、PHP→ASに戻す変数は1つだけなので(たぶん)、そのほうが色々なことが出来そうですね。

またチャレンジ一年生したいと思います。いつの日か。

ちなみに、今回がWordPress 3.0 日本語 で書く初めてのエントリーでございました。

何の問題もなくアップグレードが出来たもの、日ごろの行いが良かったからでしょう。

まぁ、そんなにカスタムしてるわけじゃないので、当たり前のことじゃ!

等と、自分で自分をけなしたいと思います。

では!

大阪ひよこの会 第一弾 ミーティング と 懇親会

6月 8th, 2010

大阪ひよこの会

6/5の土曜日、18時
場所はオノフさん

発起人はひろゆきさん(@ProjectNyaさん)とマサムネさん(@masamunet)さん

ちゃんとした記事が読みたい方はこちらをチェキラ

にゃあプロジェクト
宇都宮ウェブ研究所

・・・

[メモったことの羅列]

・マニアックになりすぎないこと
・テーマを共有すること
・みんなの勉強方法って
・ビルトインクラスを一人1つ課題でつぶしていく
・自分のコードが正しいのか正しくないのかわからない
・イベントまわり(dispatcherとか)
・セキュリティ
・FlashBuilderの使い方、FDTとか
・勉強会の方向性
・ここはもっとこうしたほうがいいんじゃないっていう助言
・プロジェクト・ファイル管理の仕方
・エラーの意味

[頭の中のメモの切れ端]
・発表会、質問会、飲み会でするとか
・たまごの会、にわとりの会等の派生部会
・Progressionは素晴らしい!
・Dictionaryって便利だYO
・どうしてJSerがいないのか
・eclipse
・プリローダー
・一回にロードさせる画像は4つまでが良い
・FD3.2
・とりあえずやってみろ!
・おにぎり専用のクックパッドみたいなん
・ご当地おにぎり
・家のおにぎり
・いろいろな形のおにぎり
・前衛的おにぎり
・絶望おにぎり
・おにぎりAR

です。

おにぎりはツボでした。

個人的な感想、雑感ですが、
懇親会で色々お話を聞けたのは、すごい楽しかった。
こういうスタンスで、「何気ない話」から情報を収集することって、楽しいですし、発見が多いような気がします。

ある程度のテーマは残しつつ、脱線大いに結構!みたいな。

いまさら人には聞けないことも、
こんな質問して・・・いいのかなぁってことも、
僕がどうでもいい様なことを発言しても、
みなさんがみなさんのために真摯に考え、答えてくる環境になって行くようにしていきたいですね。

自分自身、この業界に入って数ヶ月、AS3なんて、以前勉強ようとして、挫折しています。
どうやって勉強するのか、どうやって問題を解決するのか、全く理解が出来なかったですし、聞く相手もいなかった。
これだけで、かなり堪える。
でも、ひろゆきさんやまさむねさんが言い出してくれたこのひよこの会を、
そういった方々のため、自分のためにも、盛り上げていかなあかんのかなー、と、意気込んでおります。勝手に。無力のくせに。

はい、正直、初心者で偉ぶっているますが、アウトプットすることが、必要だと思ったので、まだ書きます。

ひろゆきさんが「参加することが重要」っておっしゃっていて、これは、本当にそうだ!!と。

アウトプットがあってレスポンスがあってフィードバックがある。
これは、一人じゃ出来ん。
新たに同じようなことがあれば、アウトプットした人がレスポンスできるし。
output

ああ、まただらだらと、要点のないことを書いている!が。それもまた良し。

[あればいいなー、と思うもの]
アーカイブ的な何か。
せっかく誰から質問して、みんなで答えて、ってするなら、
そのやり取りをアーカイブとして残したいですね。
「まずこれを読め!」とかじゃーなく、そんな「ググれ!」みないなことは言わずに、
ただ単純に「知識の集積」として。
各個々人のブログなりソーシャル何とかに書く、ってのもありですけど、
こう、情報がありまっせ!的な、巨大なリソース群。
誰が管理する?ってことになるでしょうが、まず言ってみます。投げてみます。

あと、50人とかの勉強会は、勉強会としてはしんどい、と思います。
欲を言えば、超個人的に言えば、20人までがベストかなー、と。
誰かれが発言する、ってことになれば、多すぎると発言できないまま終わってしまいそうです(僕がそう!)

BBQとかやって、もっと仲良くなりたい。
人見知りを緩和させたい。

です!
しっかりやります!

ドス黒い部分、自分勝手な部分が出てきそうなので、
ここまで!

長文駄文。

追記:
ちなみにtwitterでのアウトプットは、結構有効かもしれません。
Progressionでわからん!ってさえずったら、「どこがわからんの?」とniumさんが光臨されたことがありますし、
最近ではyugopさんからのリツイート頂きました!
僕、ミーハーですよ。

actionscriptとRSS

6月 5th, 2010

FlashでRSSフィードを読み込みたいのけど出てしまう

「セキュリティサンドボックス侵害」っていうのん。

ググってみても、Loaderでの対処ばっかしだわさ。

外部イメージの読み込みの部分での対処ばっかりね。

LoaderContextとかLoader.load(url,context)的。

じゃー、URLLoaderの場合はどうすればいいのか・・・

URLLoaderの引数は1個(URLRequest)で、LoaderContextは持ってこれない。

なので、PHPファイルに一回そのxmlもってきて、

そのPHPファイルをFlashを置くドメインに置いて、そっから読み込むっていう所業。

<?php

echo get_file_contents('フィードのURL');

?>

「echo」は必須、だったと思います。10時間前のことは覚えていません。

そのパスをURLRequsetでとってきてURLLoaderで読み込んで、XMLList的なものに入れて、

appendTextとか何かで、for使って個数決めて、何やかんややったら出来ました。

ざっくりとしたメモ。

ちなみにフィードの相手はかのアメブロでした。

自分のやったら、問題なかった(当たり前だけど)。

だって、クロスドメイン的なxml的なの置いたんだもの。

そういやmixiも勝手に画像使われないように、クロスドメイン的なxmlに規制っていうか、

遮断しているってどっかで見ましたよ。

はい。

すんません。

あー、ブログのカテゴリー、もっとちゃんとせなあきませんとかいいながら、

また次はいつになるだろうかーなー。

最近の色々

5月 12th, 2010

ここ一ヵ月色々ありましたが、

新しい仕事をするよになって、ようやく

htmlやらcssやらをモフモフすることを生業とすることに成功しました。

flashもこれから、仕事としてやっていくにあたって、勉強会に何個か参加しました。

・67works Geeks

・Progression本読み会

えー、撃沈でした。

日本でも有数なflasherさんたちに混じったのですが、なんのこっちゃ。

情けないことに、おしっこちびりそうになりました。

「本気で取り組む」っていうよりも「仕事に還元」出来るようにならんといかんなぁ、

そう感じてます。

webで飯を食う、わけですから、「稼ぐ」人間でありたいと切に、切々と。

新しいこと?というか、仲間でサイトを立ち上げました。

iLDK

今のところはみんなのブログだけですけど、なんかおもろいことがあればコンテンツとして

どんどん出して行こうと思っています。

自分自身のサイトではweb関連、iLDKでは自分の周りのことだったり、もっと「誰にでも近い」ことを、

自分の中で仕分けながらやって行こうと思います。

はい。

そういうことです。

progression、初めてちゃんと組んでいるけど、楽しいです。難しいですが。

progression本、買っていない人は、買いましょう。flashするのなら、必須。

正規表現のお勉強

4月 11th, 2010

twitterからRSSをひっぱってきてモフモフする時って、

ブログからひっぱってくる時と事情が違う。

一緒なんだけども、「@….」「#….」とかね、タイムラインではリンクになってますよね。

今回はPHPでTwitterからRSSでひっぱってきて、@も#も全部リンクにすることが出来るかなぁ、という勉強。

正規表現は難しい。というかややこしい。僕にとって。

わかりやすいサイトを教えてもらったので、参考にそこを読む。

さるにもわかる正規表現

まずはXML_RSSでRSSを取得しパース

$tweet=&new XML_RSS($tweet_url);
$tweet->parse();

getItems()で中身を取り出す

foreach($tweet->getItems() as $item){  
    $item['description']=mb_convert_encoding($item['description'],'UTF-8','auto');
    $item['description']=mb_substr($item['description'],6);
    $pat=array("/(https?)(:\/\/[[:alnum:]\+\$\;\?\.%,!#~*\/:@&=_-]+)/i");
    $_user=array("/(@)([[:alnum:]_]+)/");
    $_search=array("/(#)([[:alnum:]_]+)/");
    $replacements = array("<a href=\"\\1\\2\"?phpMyAdmin=f59fa711f0e26091bc5c43fe01778ab9>\\1\\2</a>");
    $replacements2 = array("\\1<a href=\"http://twitter.com/\\2\">\\2</a>");
    $replacements3 = array("<a href=\"http://twitter.com/search?q=%23\\2\">\\1\\2</a>");
    $item['description']= preg_replace($pat, $replacements, $item['description']);
    $item['description']= preg_replace($_user, $replacements2, $item['description']);
    $item['description']= preg_replace($_search, $replacements3, $item['description']);
    $item['list']="<li class=\"grid twitter_li\">";
}

色々調べながらやってみました。時間かかったけど。

$pat、$_user、$_searchがマッチさせたい文字列です。

$pat=array("/(https?)(:\/\/[[:alnum:]\+\$\;\?\.%,!#~*\/:@&=_-]+)/i");

各項目内の[:alnum:]はアルファベット・数字全部、()は文字列のグループ化。

「?」は「直前の文字が1つ、もしくは0つ」ということみたいです。

(https?)、はつまり「httpかhttps」がマッチ、ということになります。

[]は「[]ないどれか1つ」で、+は「最低1つ直前の文字があることで同じ文字の繰り返し」ですか。

ふー

「同じ文字の繰り返し」なのですが、[]内の文字の繰り返し、っていうことになるのですね。

$replacementsは置き換える文字列です。

$replacements = array("<a href=\"\\1\\2\"?phpMyAdmin=f59fa711f0e26091bc5c43fe01778ab9>\\1\\2</a>");

「\”」は”のエスケープで、「\\1\\2」はグループ化された$patの文字列部分をあらわしています。

なので

http://www.takasumi-nagai.com/

があるとしたら、

(http) \\1
(://www.takasumi-nagai.com/) \\2

ということになる(ぼんやりしかわかってないけど・・・)

なんしか、これで出来ました。

難しいですね。正規表現。

私のサイトトップで実装してます。

ちゃんと動いているみたいですね。

良かった。