No Smoking!

5 2009 In: Life is Cool!

發現查爾斯抽的菸的盒子有變化,一看,原來菸的盒子上貼了張圖片!

no_smoking_tw

呀,其實國外的菸廠很多也貼了如下的圖片了呢!

no_smoking_en

大陸2009年生產后的香菸,菸盒上的 吸菸有害健康 終于從側面放到正面上。

no_smoking_compare

不得不承認,特別是對現在的年輕人,吸菸會導致性功能障礙 吸煙有害健康 Shock 多了呢!

分享到新浪微博 分享到人人网 分享到豆瓣 分享到鲜果 分享到百度空间 分享到开心网 QQ书签 分享到YAHOO! 分享到Google Google Buzz 分享到Facebook 分享到Plurk Digg delicious Technorati Twitter

現在使用html標簽越來越頻繁,但是對Database的負擔也會隨之增加。

那么我們能不能自定義rules呢?

下面舉個簡單的例子

比如一個
link(<a target=”_blank” href=”http://www.yahoo.com.tw”><u>奇摩</u></a>)
我們將會把它變成
[http://www.yahoo.com.tw||奇摩]
然后再在Database進行存儲。相比而言,63個字符轉化29個字符,2:1的比例。考慮到其他的html標簽,我們至少能省掉數據庫一半的空間比例。

有些人說,這樣的做法不是加重了服務器的處理么?不不不,現在RIA普遍程度越來越大,很多以前放在后端的處理,都會直接放在前端進行處理。畢竟Server端只有一個,而Client端可以無窮。因此,我們只是在Client端做文章。

  • 在向服務器存儲時,在Client端做standard_html到rule_html的處理。
  • 在從服務器讀取時,在Client端做rule_html到standard_html的顯示。

 

 下面貼出Client端做rule_html到standard_html的顯示Code:

private static var headStr:String = "[";
private static var footStr:String = "]";
private static var centerStr:String = "||";
/**
* Replace Html Link
* @param Link Format
* @return htmlStr
* @author Alvin
*/
public static function replaceHtmlLink(htmlStr:String):String{
	if(htmlStr == null || htmlStr == "") {
		return "";
	}
	var tmpIndex:Number = htmlStr.indexOf(headStr);
	var headFlag:Boolean = tmpIndex != -1 ? true : false;
	if(headFlag) {
		var headIndex:Number = tmpIndex;
		tmpIndex = htmlStr.indexOf(footStr, headIndex);
		var footFlag:Boolean = tmpIndex != -1 ? true : false;
		if(footFlag) {
			var footIndex:Number = tmpIndex;
			tmpIndex = htmlStr.substring(headIndex, footIndex).indexOf(centerStr);
			var centerFlag:Boolean = tmpIndex != -1 ? true : false;
			if(centerFlag) {
				var centerIndex:Number = tmpIndex + headIndex;
				var frontStr:String = htmlStr.substring(0, headIndex);
				var linkStr:String = htmlStr.substring(headIndex + headStr.length, centerIndex);
				var textStr:String = htmlStr.substring(centerIndex + centerStr.length, footIndex);
				var backStr:String = htmlStr.substring(footIndex + footStr.length, htmlStr.length);
 
				if(backStr.indexOf(headStr)!= -1) {
					backStr = replaceHtmlLink(backStr);
				}
				var lastStr:String = frontStr +
				"<span style="color: #00ddd0;"><a href="\" target="\&quot;_blank\&quot;"><span style="text-decoration: underline;">" + textStr +"</span></a></span>"
				+ backStr;
				return lastStr;
			}
		}
	}
	return htmlStr;
}
分享到新浪微博 分享到人人网 分享到豆瓣 分享到鲜果 分享到百度空间 分享到开心网 QQ书签 分享到YAHOO! 分享到Google Google Buzz 分享到Facebook 分享到Plurk Digg delicious Technorati Twitter

桌面背景布局

  • 居中
  • 平鋪
  • 拉伸

DesktopBackgroundLayout

  • LayoutManager.CENTER
  • LayoutManager.TILE
  • LayoutManager.STRETCH

 重點是在
flash.display.Graphics
beginBitmapFill(bitmap:BitmapData, matrix:Matrix = null, repeat:Boolean = true, smooth:Boolean = false):void
在matrix和repeat的應用上。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
//...
backgroundUI.graphics.clear();
if(layoutManagerStr == "stretch") {
	bitmap = new BitmapData(loader.width, loader.height);
	bitmap.draw(loader);
	matrix.scale((backgroundUI.width / loader.width) , (backgroundUI.height / loader.height));
	backgroundUI.graphics.beginBitmapFill(bitmap, matrix, false, true);
	backgroundUI.graphics.drawRect(0, 0, backgroundUI.width, backgroundUI.height);
} else if(layoutManagerStr == "tile") {
	bitmap = new BitmapData(loader.width,loader.height);
	bitmap.draw(loader);
	backgroundUI.graphics.beginBitmapFill(bitmap, null, true, true);
	backgroundUI.graphics.drawRect(0, 0, backgroundUI.width, backgroundUI.height);
} else if(layoutManagerStr == "center") {
	bitmap = new BitmapData(unitW, unitH);
	bitmap.draw(loader);
	var centerX:Number = backgroundUI.width / 2 - loader.width / 2;
	var centerY:Number = backgroundUI.height / 2 - loader.height / 2;
	matrix.tx = centerX;
	matrix.ty = centerY;
	backgroundUI.graphics.beginBitmapFill(bitmap, matrix, false, true);
	backgroundUI.graphics.drawRect(centerX, centerY, loader.width, loader.height);
}
backgroundUI.graphics.endFill();
//...

This movie requires Flash Player 9

分享到新浪微博 分享到人人网 分享到豆瓣 分享到鲜果 分享到百度空间 分享到开心网 QQ书签 分享到YAHOO! 分享到Google Google Buzz 分享到Facebook 分享到Plurk Digg delicious Technorati Twitter

差不多一年前 YouTube APIs and Tools team 發布了 YouTube Player API ,另人遺憾的是在對ActionScript2良好的支持上,卻對現在最流行的ActionScript3的支持并不友好,特別是對新手來說,處理AS3和AS2直接的交互和Youtube Player的控制會比較復雜。

TubeLoc 是 Ben Longoria

具體請看:
TubeLoc in Google Code
TubeLoc in YouTube APIs and Tools 

分享到新浪微博 分享到人人网 分享到豆瓣 分享到鲜果 分享到百度空间 分享到开心网 QQ书签 分享到YAHOO! 分享到Google Google Buzz 分享到Facebook 分享到Plurk Digg delicious Technorati Twitter

美聯社說,隨著科技進步,一些廣告公司在巨型廣告上畫面,或者在廣告牌週邊,安裝小型監視器,瞭解看廣告人的性別,年齡跟族群,根據獲得的情報,立即更換廣告,迎合看廣告人的喜好。
例如,如果廣告監視器發現,看廣告的是一名男性,自動更新的電子廣告辦,可能會出現男人刮鬍刀;如果看廣告的是女人,廣告可能變成化妝品廣告。
美聯社說,這種面孔觀察技術剛開始被使用,已經很容易確定瀏覽者的性別關系,但是對年齡還是比較復雜,目前只有青少年,年轻到中年的人以及老年人這種泛年齡層。
目前試用版本,準確度在八成五到九成,今後越來越多商家會使用這種技術,隨時變更廣告內容,吸引民眾注意力。

這篇的英文文章叫做 When you watch these ads, they watch you back

這讓我想起了,XX搜索引擎公司現在在做的一個項目,它開發了一種程式,在用戶瀏覽的時候,“注入”電腦,然后會去記錄用戶平常去逛的網站和搜索的關鍵字等等信息。它可以分析你的性別,年齡層次等信息,然后在達到一定數量和時間之后,廣告商會根據這些信息更換廣告,迎合看廣告人的喜好。

有沒有感覺其實這兩則事情是一樣的呢?它們都是Tracking Intelligence,這不得不說這也是一種改善User Experience的過程。

Tracking Intelligence目前敏感的一個問題是,這些搜集信息都是在用戶并不知道的情況下。下一步發展如何把握,這要看TIer們的智慧了。拭目以待吧!

分享到新浪微博 分享到人人网 分享到豆瓣 分享到鲜果 分享到百度空间 分享到开心网 QQ书签 分享到YAHOO! 分享到Google Google Buzz 分享到Facebook 分享到Plurk Digg delicious Technorati Twitter

On my way

2012 年五月
« 四    
 123456
78910111213
14151617181920
21222324252627
28293031  

Client & Partner

HSBC
ING
永丰银行
桐乡·振石大酒店
MODEKUU思齐之家

Aedis.Ju Ex-Blog

MXNA
9RIA
Creative Commons License
DropBox