Monday, December 17, 2007

Flash popup โดยใช้ Javascript

การทำ Flash popup โดยใช้ Javascript

AS2:
var jscommand:String = "window.open('http://www.adobe.com','win','height=200,width=300,toolbar=no,scrollbars=yes');";
getURL("javascript:" + jscommand + " void(0);");

AS3:
var jscommand:String = "window.open('http://www.adobe.com','win','height=200,width=300,toolbar=no,scrollbars=yes');";
var url:URLRequest = new URLRequest("javascript:" + jscommand + " void(0);");
navigateToURL(url, "_self");

ที่มา
http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_14192&sliceId=2

Friday, December 14, 2007

Flash อ่านภาษาไทย

การทำให้ Flash สามารถดึงข้อมูลจากไฟล์ภายนอกที่ Encode มาแล้วไม่ใช่ Unicode ให้อ่านภาษาไทยได้
ใส่ Code นี้ที่บรรทัดบนสุดของ Action Script สังเกตดีๆ นะครับตรงที่ตัวพิมพ์ใหญ่พิมพ์เล็กอย่าให้ผิดนะครับไม่งั้นจะใช้ไม่ได้

System.useCodepage = true;




Thursday, December 13, 2007

VB .NET Tip: Overriding vs Overloading vs Shadowing

คอนเซ็บ ของ OOP ระหว่าง Overriding , Overloading , Shadowing มีความแตกต่างกันดังนี้ :



Overriding
This method completely replace a base class method implementation. It uses the same signatures (Parameters and return values) but you add new statements from the original code or completely change the process. Here is a good example of Overriding in VB .NET:



'The Original Class
Public Class MyBaseClassSample

Public Overridable Function MyFunc(ByVal X as Integer, ByVal Y as Integer) as Integer
Retun X * Y
End sub

End Class

'The Derived Class
Public Class MyNewClassSample

Inherits MyBaseClassSample
Public Overrides Function MyFunc(ByVal X as Integer, ByVal Y as Integer) as Integer
'Take note: It accepts and return same values but it changes the process
Retun X + Y
End sub

End Class



Overloading
Think Overloading as expanding the versions of a method. You don't change the original method of the base class but you add new versions of it. To create new version of a method you must define new parameters or return new type of value. Here is an example of Overloading:


'The Original Class
Public Class MyBaseClassSample

Public Overridable Function MyFunc(ByVal X as Integer, ByVal Y as Integer) as Integer
Retun X * Y
End sub

End Class

'The Derived Class
Public Class MyNewClassSample

Inherits MyBaseClassSample

'Version 2: accepts new parameter
Public Function MyFunc(ByVal X as Integer, ByVal Y as Integer, ByVal Z as Integer) as Integer
Retun X * Y * Z
End sub

'Version 3: return new type
Public Function MyFunc(ByVal X as Integer, ByVal Y as Integer, ByVal Z as Integer) as String
Retun "Answer is: " & (X * Y * Z)
End sub

End Class



Shadowing
This method has the characteristic of both Overloading and Overriding, You create a new version of a method (overloading) but you want the orignal version be hidden from the user of the derived class (overriding). To make it crystal clear, look at the following example:


'The Original Class
Public Class MyBaseClassSample

Public Overridable Function MyFunc(ByVal X as Integer, ByVal Y as Integer) as Integer
Retun X * Y
End sub

End Class

'The Derived Class
Public Class MyNewClassSample

Inherits MyBaseClassSample

'Version 2: accepts new parameter
Public Shadows Function MyFunc(ByVal X as Integer, ByVal Y as Integer, ByVal Z as Integer) as Integer
Retun X * Y * Z
End sub


End Class

'Client code

Dim MyShadowFunc as New MyNewClassSample ()

MyShadowFunc.MyFunc(3, 4) ' Generates error since this is the original method implementation

MyShadowFunc.MyFunc(3, 4, 5) ' Correct method

Tuesday, December 11, 2007

วิธีทำ Favorite Icon บน URL เว็บไซต์

ใส่ Code นี้ใน tag Head ของเว็บไซต์

< href="favicon.ico" type="image/x-icon" rel="shortcut icon">

แล้วนำ icon ของเราไปวางที่ตำแหน่งตาม URL ของเราเป็นอันเสร็จสมบูรณ์ แต่ช่วงแรก favorite icon ของเราอาจจะขึ้นช้าหน่อยก็ไม่ต้องตกใจนะ ต้องรอซักระยะหนึ่งก่อน

Monday, November 19, 2007

Hack Wii มาทำเป็นตัว Sensor นิ้ว



เหมือนในหนังเลย จำได้ไหมเรื่องอะไร ใช้นิ้วจิ้มๆ แบบนี้ ดูให้จบนะ

Friday, November 16, 2007

Load xml ลงใน Flash AS3

var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE, onLoadXML); //โหลดเรียบร้อยไปใช้ฟังก์ชั่น onLoadXML
loader.load(new URLRequest("XML/testmy.xml"));


function onLoadXML(ev:Event) {
try { var myXML:XML = new XML(ev.target.data);
for (var i=0; i trace(myXML.dramalist[i].title);
trace(myXML.dramalist[i].time);
}
} catch (e:TypeError) {
trace("Could not parse the XML");
trace(e.message);
}
}

Wednesday, November 7, 2007

IPTV คืออะไร

IPTV คืออะไร ?
ก่อนอื่นต้องให้คำนิยามของคำว่า IPTV ว่ามันคืออะไรก่อน ซึ่ง IPTV มีความหมายตามชื่อมันคือ (Internet protocol television) ทีวีที่อยู่บนอินเทอร์เน็ต เป็นบริการดิจิตอลทีวีที่ส่งผ่าน Internet Protocal หรือ IP นั้นเอง การส่งข้อมูลจะทำได้โดยผ่านเชื่อมต่อกับอินเทอร์เน็ต broadband ซึ่งโดยทั่วไปแล้วจะเป็นแพร่ภาพผ่านทางสายเคเบิล และสามารถรับชมได้ผ่านทางเทคโนโลยีเครือข่ายคอมพิวเตอร์ ซึ่งในประเทศไทยจะเห็นว่าความหมายของ IPTV ไม่จำกัดเพียงแค่การดูภาพและเสียงผ่านอินเทอร์เน็ตเท่านั้น แต่ยังสามารถแลกเปลี่ยนข้อมูลทุกอย่างที่เป็น Digital ได้ ผ่าน IPTV นี้ เช่น game , chatrooms , e-commerce , vod, internet, music พ่วงไปด้วย ซึ่งการให้บริการในปัจจุบัน IPTV จะใช้วิธีการผ่าน set-top box ซึ่งจะต้องมีโครงข่าย fiber ขนาดใหญ่ หรือเครือข่ายอื่นๆ ที่มีความเสถียรในการเชื่อมต่อสัญญาณไปยังจุดต่างๆ

จุดเริ่มต้นของ IPTV มาจากบริษัท ABC ในปี 1994 ที่แพร่ภาพสัญญาณผ่านอินเทอร์เน็ต โดยใช้โปรแกรมที่ชื่อว่า CU-SeeMe ทำการแพร่ภาพไป
อนาคตของ IPTV
ถ้าเรามอง IPTV ในภาพของ IT แล้วจะต้องฟัง Bill Gates พูดในงาน Consumer Electronics Show(CES) ใน Las Vegas ว่าทุกคนต้องการข้อมูลที่สามารถอยู่ในหลายๆ Platform นั่นก็คือ SilverLight คาดว่าจะเป็น Software ที่จะมาพัฒนา IPTV ให้สามารถมี Interactive และสามารถใช้กับ Platform อื่นๆ ได้ แล้ว scenarios, video, data และ voice จะมารวมกันได้ นั่นก็คือ IPTV นั่นเอง แล้วอนาคตของ IPTV น่าจะสดใส เมื่ออุปกรณ์ hardware แต่ละค่าย ก็ต่างพัฒนาตัว set-top box แข่งกัน ไม่ว่าจะเป็น Microsoft ที่จะมีตัว Xbox เป็น set-top box ที่สามารถเล่น game และ entertainment อื่นๆ ได้ และยังจับมือกับ HP เพื่อพัฒนา HP Media Smart Server โดยใช้ระบบปฏิบัติการ Windows Home Server ที่มีเนื้อที่เก็บข้อมูลเป็นเทอราไบต์ เพื่อหวังว่าอนาคตทุกบ้านจะต้องมี Server เป็นของตัวเองเพื่อที่จะใช้ควบคุมทุกอย่างในบ้านได้

ส่วนทางด้าน Sony ก็กำลังพัฒนา Xross Media Bar ลงใน Play Station 3 ซึ่งเป็น interface คล้ายของทางด้าน Windows Media Center ของ Microsoft ที่เป็นเมนูในการเลือกชมภาพยนตร์หรือรับชมทีวีได้ ซึ่งจะมี Sony Bravia หรือ Sony Cyber Shot และอุปกรณ์อื่นๆ สามารถ Connect มาที่ตัว Play Station 3 นี้ได้

และไม่ว่าจะเป็นค่ายอื่นๆ เช่น LG , Sumsung , Panasonic, Comcast ก็พัฒนาตัว set-top box เพื่อตอบโจทย์อนาคตที่จะเป็น “บ้านอัฉริยะ” ที่สามารถทำทุกอย่างได้ผ่านอุปกรณ์เพียงตัวเดียว

จากที่พบมาบริษัทดังๆ แทบทุกค่ายต่างก็พัฒนา set-top box นี้ทั้งนั้น และจะเห็นแนวโน้มของแต่ละค่ายได้ว่าทุกค่ายจะผลิตตัว set-top box ให้เป็นอุปกรณ์ที่ไม่ใช่แค่สำหรับดูทีวีผ่านอินเทอร์เน็ตความเร็วสูงเท่านั้น แต่ยังสามารถนำไปเชื่อมต่อกับอุปกรณ์อื่นๆ ได้ โดยมี set-top box นี้ หรืออาจจะมี Server ตั้งที่บ้านเป็นศูนย์กลางในการเชื่อมต่อไปยังอุปกรณ์ต่างๆ หรือสั่งซื้อของ ดูหนัง ฟังเพลง เล่นเกม ฯลฯ เพียงแค่กด Remote เพียงตัวเดียวเท่านั้น

ส่วนว่าค่ายไหนจะเป็นผู้ได้ครองตลาดต่อไปในอนาคตนั้นจะอยู่ที่จุดเด่นของแต่ละค่ายที่จะทำออกมาแข่งขันกัน ภาพของค่ายที่จะเป็นอันดับหนึ่งอาจจะยังมองไม่ออกในขณะนี้ แต่ทิศทางที่จะไปจะเหมือนๆ กันแทบทุกค่าย

ทั้งหมดนี้เป็นความคิดเห็นส่วนตัวที่ผมมองอนาคตไว้ตามประสบการณ์ที่ผมมีครับ ซึ่งคุณอาจจะไม่เชื่อผมก็ได้

What is DV ?

DV Standards
- SMPTE 314M: Data Structure for DV-Based Audio, Data and Compressed Video - 25 and 50 Mb/s
- SMPTE 370M: Data Structure for DV-Based Audio, Data and Compressed Video at 100 Mb/s 1080/60i, 1080/50i, 720/60p, 720/50p

DV Format
MiniDV : Also referred to as "Regular DV" "Consumer DV" or just "DV"
DVCAM : By Sony
DVCPRO : By Panasonic

DV25
A/V Data-rate-Net Storage capacity / 90 min : ca. 28 Mbit/s - ca. 19 Gbyte
Sampling raster / Net Video data-rate : 4:1:1 / 25 Mbit/s

DV50
A/V Data-rate-Net Storage capacity / 90 min : ca. 58 Mbit/s - ca. 39 Gbyte
Sampling raster / Net Video data-rate : 4:2:2

ระบบ DV มีความแตกต่างจากระบบอื่น ๆ ตรงที่ความสามารถบีบอัดสัญญาณในอัตราส่วนที่แตกต่างกันในภาพเดียวกัน เช่นภาพในเฟรมหนึ่งเป็นภาพของแนวพุ่มไม้ที่มีท้องฟ้าเป็นฉากหลัง ระบบก็จะทำการคำนวณหาความแตกต่างของส่วนต่าง ๆ ในภาพ แล้วจึงออกคำสั่งให้บีบอัดสัญญาณในส่วนที่เป็นท้องฟ้าในอัตราส่วน 25:1 ในขณะที่ส่วนของแนวพุ่มไม้ซึ่งต้องการเก็บรายละเอียดของภาพที่เป็นก้านและใบ ระบบ DV ก็จะออกคำสั่ง ให้ใช้อัตราส่วนเพื่อการบีบอัดภาพในอัตราส่วน 7:1

ซึ่งวิธีการนี้ทำให้ระบบ DV สามารถทำการบีบอัดสัญญาณได้อย่างมีประสิทธิภาพมากขึ้น ซึ่งเมื่อเปรียบเทียบกับการบีบอัดสัญญาณในระบบ M-JPEG ซึ่งทำการบีบอัดสัญญาณในอัตราส่วนเดียวกันแล้ว ระบบ DV จะให้ประสิทธิภาพในการบีบอัดดีกว่า

อ้างอิง :
http://www.kmutt.ac.th/
http://people.csail.mit.edu/tbuehler/video/dv.html

Monday, November 5, 2007

ASYNC_NETWORK_IO SQL 2005 Waits and Queues

ปัญหาที่ Sql server 2005 ช้า ถ้าดูที่ Activity Monitor ของ SQL2005 จะเห็นว่าเกิด Wait Type เป็นASYNC_NETWORK_IO
ปัญหาเกิดจาก
- คุณได้ enable trace flag 1118
- มันจะสร้าง temp table ทำให้เกิดการทำงานที่สูง(workload)
- ไฟล์หลายๆ ตัว ยังอยู่ใน tempdb database
- หรืออาจจะเกิดจากการ Query ที่ต้องดึงข้อมูลที่มากเกินไป เช่น ดึง Database ที่มีภาพอยู่เป็นจำนวนมาก ซึ่งอาจทำให้ Network วิ่งไม่พอ

วิธีแก้คือ
วิธีที่ 1 ลง Service Pack 2 ของ Sql Server 2005
วิธีที่ 2 disable trace flag 1118 โดยใช้คำสั่ง
DBCC TRACEOFF (1118, -1)
วิธีที่ 3 แก้ไขการ Query ให้ดึงข้อมูลน้อยลง

ที่มา http://support.microsoft.com/kb/936185
ที่มา http://www.sqldev.net/articles/locklatch.htm
ที่มา http://msdn2.microsoft.com/en-us/library/ms179984.aspx

Sunday, September 23, 2007

เขียน Code จับ Bitrate ของ Media Player

การเขียน Code จับ Bitrate ของ Media Player สามารถเขียนได้ตาม code ด้านล่าง

http://mystreamingurl/pubpoint?WmContentBitrate=128000
ตัวอย่างเช่น :
< param name="URL" value="http://mystreamingurl/pubpoint?WmContentBitrate=128000">

โดยที่ 128000 คือค่า Bitrate ที่ต้องการ เช่น
- 128000 คือ 128kbps
- 56000 คือ 56kbps

mystreamingurl = ip ของ streaming server เช่น 61.200.10.60
pubpoint = Publish Point ที่สร้างจาก Media Services

Thursday, September 20, 2007

ปัญหา Spooler Printer ใน Windows Vista

ถ้าคุณมีปัญหาเกี่ยวกับการ print มีข้อความฟ้องเกี่ยวกับ Spooler stop ไป ใน Windows Vista นั้น
เราสามารถที่จะสั่งให้ Spooler Start ใหม่ได้ โดยเข้าไปที่ Start > Run > พิมพ์ cmd แล้วพิมพ์ command ด้านล่าง
โดยใช้คำสั่ง Start

net start spooler

ก็จะทำให้สามารถ Start Spooler Printer ใหม่ได้
และถ้า start แล้วไม่ได้ผล อาจจะสั่ง stop แล้ว start ใหม่ก็ได้โดยใช้คำสั่ง
คำสั่ง Stop

net stop spooler

คำสั่ง Start
net start spooler

ตรวจสอบ Version และ Service Pack ของ SQL Server

วิธีตรวจสอบ Version และ Service Pack ของ Microsoft SQL Server
เปิด Microsoft SQL Server ขึ้นมาแล้ว connect SQL Server โดยใช้ SQL Server Management Studio, แล้ว Run Transact-SQL ดังนี้

SELECT SERVERPROPERTY('productversion'), SERVERPROPERTY ('productlevel'), SERVERPROPERTY ('edition')


RTM = 2005.90.1399
SQL Server 2005 Service Pack 1 = 2005.90.2047
SQL Server 2005 Service Pack 2 = 2005.90.3042

ที่มา http://support.microsoft.com/default.aspx?scid=kb;en-us;q321185