Labs

<< 最初 < 前ページ 次ページ > 最後 >>
icon FlexBuilderでプロジェクトをSVN管理 (2010/04/23)
うわー
Flash Player10.1 betaにしたら、Matrix3Dの処理が思わぬ動きにw
クロスドメイン問題と言い、色々と面倒だ。

Youtubeストリーミングは、Flashで直接できないから(プロキシかましたり、Airではできる)し、このサイトもHTML出力にするかな?と思うこのごろ。
とは言え悔しいので、先日発売になったFlex4でAirアプリ作ってます(^_^)

iPhoneじゃ動かないけど、ニュースになったWePad(Andoroid)で動いたら面白いな。
てか、iPhone、Andoroidも頑張んないといかんが、時間が皆無。。。

さてFlex4は、まだ会社でアップグレードしてもらってないので、体験版で。
SVNのリポジトリ作成は、Linuxサーバ上で手動で作ってます。
SVNリポジトリの作成

実際にFlexBuilderでSVNを利用してみる。
■subsclipseインストール
Flex4はEclipse3.6だけど、subsclipse1.4.xが入れられない。
(Graphのライブラリが必要?)

調べるのがめんどいので、1.2.x(非安定板)をとりあえずインストール。

http://subclipse.tigris.org/update_1.2.x



■初期コミット
(1) チーム>プロジェクトの共有>SVN
(2) ロケーション情報作成(ディレクトリ作成)

http://yoo-s.com/svn/YTwitter/flex4/air/trunk/

(3) 【次へ】で全て進む

(4) 作成が完了すると、コミット画面が出てくるのであれこれしてコミット

ライブラリはここにアップ
http://yoo-s.com/svn/YTwitter/flex4/swc/trunk/
icon SyntaxHighlighterテスト (2010/04/23)
HTML版用に、SyntaxHighlighterを使ってみた。

SyntaxHighlighter 2.0 -ソースコードを素敵に表示するを参考

こういうのは、Ajaxはすごい便利だ。
Flash10.0系のhtmlTextだと、できないだろうからなぁ。
てか、wonderflでソースのswf表示してるやつあるから、それを調査すればいいか。

■準備
(1) SyntaxHighlighterパッケージを任意に配置
(2) HTMLで、JavaScriptとCSSのパスを通す(shCore.js、shCore.cssは必須)
(3) SyntaxHighlighter.all();

こんだけ。

■ソースの記述
(1) ソースコードは「pre」タグで囲む

(2) 対応言語表記に沿って記述

as3, actionscript3, bash, cf, coldfusion, c-sharp,
csharp, cpp, c, css, delphi, diff, erl, erlang, groovy,
html, js, jscript, javascript, java, jfx, javafx, pas, pascal,
patch, perl, pl, php, plain, ps, powershell, py, python,
rails, ror, ruby, scala, shell, sql, text, vb, vbnet, xml,
xhtml, xslt, xhtml



例)
pre class="brush:as3;"

■ActionScript3のソースの場合
/**
 * Copyright 2010
 * Author: Yohei Yoshikawa
 **/
package com.yoos.app.controllers
{

	import com.yoos.app.views.TwitterFriendListView;
	import com.yoos.app.views.TwitterTimelineView;
	import com.yoos.app.views.TwitterView;
	import com.yoos.libs.PageController;
	import com.yoos.libs.twitter.controllers.Twitter;
	
	import flash.events.Event;
	
	import mx.collections.ArrayCollection;

	[Bindable]
	public class TwitterController extends PageController
	{
		private static var instance:TwitterController;
		
		public static function getInstance():TwitterController {
			if (instance == null) {
				new TwitterController();
			}
			return instance;
		}

		public function TwitterController()
		{
			if (instance == null) {
				instance = this;
			}
		}
		
        override public function initialized(document:Object, id:String):void
        {
            view = document as TwitterView;
        }

		
		//view 
		public var view:TwitterView;
		public var twitterTimelineView:TwitterTimelineView;
		public var twitterFriendListView:TwitterFriendListView;

		private var currentFuncion:Function;
		
		public var twitter:Twitter;

		private var topMargin:Number = 0;

		private var delay:uint = 15000;

		public var userName:String = 'xxxxxx';
		public var password:String = 'xxxxxx';
		
        public function onCreationComplete(event:Event):void
		{
			twitter = new Twitter();
			twitter.userName = userName;
			twitter.password = password;
			
        	generatePages();
			pageTwitterTimeline();
		}

		public function onTimelineCreationComplete(event:Event):void
		{

		}
		
		private function autoLoad():void
		{
			var timer:Timer = new Timer(delay);
			timer.addEventListener(TimerEvent.TIMER, onTimer);
			timer.start();
			
			function onTimer(event:TimerEvent):void
			{
				if (currentFuncion != null) {
					//currentFuncion(currentParams);
				}
			}			
		}
		
		private function generatePages():void
		{
			baseView = view;
			baseGroup = view.container;

			twitterTimelineView = new TwitterTimelineView();
			twitterFriendListView = new TwitterFriendListView();
			
			addPage(twitterTimelineView);
			addPage(twitterFriendListView);
		}

		public function tweet(message:String):void
		{
			twitter.tweet(message, onComplete);
			
			function onComplete(event:Event):void
			{
				view.messageField.text = '';
			}
		}
	
		public function deleteTweet(id:Number):void
		{
			var handler:Function = onComplete;
			twitter.deleteTweet(id, onComplete);
			
			function onComplete(event:Event):void
			{

			}
		}
		
		public function retweet(id:Number):void
		{
			var handler:Function = onComplete;
			twitter.retweet(id, onComplete);
			
			function onComplete(event:Event):void
			{
				
			}
		}
		
		public function reply(id:Number):void
		{
			var handler:Function = onComplete;
			twitter.reply(id, onComplete);
			
			function onComplete(event:Event):void
			{
				
			}
		}
		
		public function pageTwitterTimeline():void
		{
			page(twitterTimelineView);
			twitter.getHomeTimeline();
		}

		public function pageTwitterFridnedList():void
		{
			page(twitterFriendListView);
			twitter.getFriends();
		}

	}
}
icon mixiボイスAPIを公開して欲しい (2010/04/14)
現状、mixiボイスはAPI化されていない為、htmlパースするしか方法がありません。
つまり、現状のiPhoneアプリや「twitter2mixi」を始めとする連動サービスは全滅ですw

夕方に仕様変更があったのを気づいて、mixi & twitter取得・投稿機能を修正。
修正自体はたいした事がないけど、変更がある度に修正が入るかも知れない。

しかし今回みたいな変更だと、他のライブラリに依存しない路線は正解だった。
他のライブラリ待ちだとその間サービスが止まるから・・・

修正的にはhtmlパースなので超力技だけど、
極力次回影響が少ないように「id」と「class」等のアトリビュートでパース。
しかし今回、無茶苦茶嫌らしいhtmlタグになっているw

■ボイスコメント
・HTMLタグから「コメント」と「post_time」を取得

<div class="voiced">
<p>コメント・・・・<span><a href="view_voice.pl?post_time=20100414231014&owner_id=xxxxxxx">(46分前)</a></span></p>


■ボイス投稿
・各アドレスの文字列「echo」→「voice」と変更となった。
・「post_key」のHTMLタグも変更

<input type="hidden" name="post_key" id="post_key" value="xxxxxxxxxxxxxxxxxxxxxxx" />


夜に更新されたPHPライブラリが更新されて、ソースを見てみたが
「<div class="voiced">」とあからさまな修正なんで、多分次回の修正もダメでしょう。
せめて「class="voiced"」でパースすべきだと思うが、大きく変わったら同じ事だから何ともw

API公開しないのはmixi社の方針なので、文句を言っても仕方がないけど、
日記等は公開してなぜボイスは公開しないんだろう?

あと、twitterとデータ構造を統一した方がいいと思う。
<< 最初 < 前ページ 次ページ > 最後 >>

このサイトについて

HTML5 & CSS3化しつつあるので、現在IEには対応してません。
できれば、Google Chromeやら Apple SafariのWebKit系をお勧めします。

DBからプログラムまで一応全て自作なので、バグってたらすいません。
実験でFlash版(Flex版)を先に作りましたが、ちょっと停止してます。

プロフィール

新宿近辺でSE & プログラマーしてます。
Webアプリの開発・設計とか、最近はiPhoneとか奮闘してます。
デザインはさっぱりです。

音楽は、昔からCubase打ち込み人間で、そっちの方が経歴は長いですが、最近はやる暇がないです。。。

今は、Gon's Privates ってバンドのキーボードやってます。
単発的に、なんちゃってジャズ系のライブもやってます。

名古屋生まれなのでドラゴンズ好きです。

Info && SNS

Gmail

 yohei.yoshikawa@gmail.com

Twitter

 http://twitter.com/yoo_yoo_yoo

あんまつぶやきませんが、一応技術系メインで使ってます。情報交換はこちらへ

FaceBook

 http://www.facebook.com/#!/profile.php?id=1439130626

海外の知り合いがいないので閑散としてます。

mixi

 http://mixi.jp/show_profile.pl?id=230072

音楽仲間とかはこっちメインでやってます。興味があればこちらへ