Labs

<< 最初 < 前ページ 次ページ > 最後 >>
icon 2010/04/23 SyntaxHighlighterテスト
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 2010/04/14 mixiボイスAPIを公開して欲しい
現状、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とデータ構造を統一した方がいいと思う。
icon 2010/04/10 iPhoneアプリ規制とECMAScript
iPhoneOS 4.0が発表されて、ようやくマルチタスクに対応する事に。
これで相当便利なアプリが登場することに。

しかしその裏側で、Flash CS5発売目の前にこんな規約ができてしまったw
http://japanese.engadget.com/2010/04/09/iphone-flash/

これでiPhoneアプリ開発は「ObjectiveC」「WebKit + JavaScript」になってしまった。
つうことで、Adobeの生きる道は「AndroidでAirアプリ」の一本になってしまった。

しかしJavaScriptは開発者からしたら、現状では非常に非効率な言語に思える。
クラス定義・継承がprototypeで対応するってのは、どうも強引過ぎる。。。

ECMAScriptをwikiで調べたら、

「ECMAScript 4 は過去2回仕様作成が挑戦されたが、仕様がまとまらず、失敗に終わっている」

・JavaScript:ECMA-262 3rd edition
・ActionScript:ECMA-262 4th草案、ECMA-357

■鍵を握る「ECMAScript」基準
ECMAScript 5
ECMAScript 5の"Object"

・オブジェクトの操作拡張 (Object.create、Object.seal、Object.freezeなど)
・JSON
・Strict Mode

Strict Modeってよくわからないと思ったら、警告モード有無の事ねw

 Strict = 厳格な

普段何気なく使ってても、用語知らなかったりすのはちと恥ずかしいw
こんなんじゃコンサルできないな。
<< 最初 < 前ページ 次ページ > 最後 >>

このサイトについて

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

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