InnoDB กับ MyISAM ใน mysql
Jul 19th
พอดีผมได้มีโอกาสแก้งานที่เป็น mysql ของเว็บไซต์หนึ่ง ขอไม่บอกว่าเว็บอะไรนะครับ
ปัญหาก็คือ table ที่เคยทำงานได้ อยู่มาวันหนึ่งมันกลับเปิดไม่ได้แน่นอนครับว่าข้อมูลข้างในได้ล่องลอยไปกับอากาศเรียบร้อยแล้วสิ่งที่ทำได้ก็คือทำให้ table นี้ใช้งานได้ก่อน เรื่องข้อมูลข้างในก็คงต้องหาวิธีแก้ไขกันต่อไป
สิ่งที่ผมคิดอันดับแรกเลยก็คือเข้าไป backup ใน folder data ของ mysql ก่อนเลยแต่แม่เจ้าปรากฏว่าเจออะไรบางอย่างที่ผิดหูผิดตาไป จนจูงจิตรวิญญาณเราให้คล้อยตามว่าสิ่งนั้นมันคือต้นเหตุของทั้งหมด
สิ่งที่ผมเจอก็คือ ทุกๆ table ที่อยู่ใน folder data จะมีอยู่ด้วยกัน 3 file ที่ชื่อเหมือนกันแตกต่างแค่ชนิดของ file คือ MYI,MYD,frm และมีอยู่แค่ table เดียวที่มีอยุ่ไฟล์เดียวก็คือไฟล์ที่มีปัญหานี่แหละครับผมก็เลยคิดว่าไฟล์มันถูกลบไปแต่ด้วยวิธีใดก็ไม่รู้
ก็เลยทำให้ผมต้องใช้เวลาในการหาวิธีกูอีกสองไฟล์ที่หายกลับคืนมาหวังว่าจะได้ข้อมูลกลับมาด้วย ซึ่งใช้เวลาไปกับการค้นหาเป้นวัน ซึ่งผมกำลังบอกว่าผมคิดผิดถนัดเลย เหตุผลที่ table นี่มีแค่ไฟล์เดียวก็เพราะว่า table นี้มันถูกสร้างด้วยชนิดที่เป็น InnoDB ซึ่งเจ้าชนิดนี้เมื่อเราสร้าง table ขึ้นมามันจะมีอยู่แค่ file เดียวใน folder data ก็คือ frm นั่นเอง เพราะฉนั้นถ้าใครจะสร้าง tabel ก็ดูดีดีนะครับว่าต้องการสร้างชนิดไหน
แต่ละไฟล์ของ table [...]
visioncoding video training
Jul 15th
หลังจากที่หายหน้าหายตากันไปนานนนนนนนนนนนน มากกกกกกกกกกกกก (งานเยอะครับ) ก็กลับมาพร้อมกับวิดีโอการสอนของ visioncoding นะครับยังไงก็ลองเข้าไปดูกันได้ที่ link นี้นะครับvisioncoding’s video training หรือ เข้าไปที่ menu videoก็ได้ครับกำลังจะอัปโหลดตามมาเรื่อยๆนะครับ ใหม่ล่าสุดที่เพิ่งจะอัปโหลดเลยก็เป็นเรื่องของ red5 flash server นะครับใครที่สนใจก็เข้าไปเยี่ยมชมกันได้นะครับ
10 ข้อที่นักพัฒนา flash ควรรู้
Jan 27th
พอดีผมไปเจอบทความนี้จาก pv3d.org ซึ่งเป็นบทความที่ดีมากสำหรับผมและหลายๆคนเพราะถ้าเราขาดอย่างใดอย่างหนึ่งในสิบข้อดีก็จะทำงานเป็นทืมลำบากและจะเจอปัญหาเยอะที่ไม่สามารถแก้ไขได้ผมจึงนำบทความนี้ลงให้ทุกคนที่สนใจได้ศึกษากันครับ
The Elastic Racetrack
http://www.craftymind.com/2008/04/18/updated-elastic-racetrack-for-flash-9-and-avm2/
FlexSDK, mxmlc, compc, and all that jazz
http://www.senocular.com/flash/tutorials/as3withmxmlc/
http://livedocs.adobe.com/flex/3/html/help.html?content=apparch_08.html
Player Events, Custom Events, Event Bubbling
http://www.adobe.com/devnet/actionscript/articles/event_handling_as3_03.html
http://livedocs.adobe.com/flex/3/langref/flash/events/package-detail.html
http://www.tink.ws/blog/custom-events-in-as-30-dont-forget-to-override-the-clone-method/
http://jacwright.com/blog/70/how-to-listen-to-flash-events-that-dont-bubble/
Statements, Keywords, and Directives
http://livedocs.adobe.com/flex/2/langref/statements.html
ASDoc
http://livedocs.adobe.com/flex/3/html/help.html?content=asdoc_3.html
Managing visual assets (images, fonts, CSS, etc)
http://www.gskinner.com/talks/flexlovesflash/
http://code.google.com/p/queueloader-as3/
http://code.google.com/p/bulk-loader/
Arrays, Collections, Dictionaries, Mapping
http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/Array.html
http://www.gskinner.com/blog/archives/2006/07/as3_dictionary.html
http://code.google.com/p/as3ds/
Programmatic motion (tweening, easing)
http://blog.greensock.com/tweenmaxas3/
http://www.amazon.com/Foundation-Actionscript-3-0-Animation-Making/dp/1590597915/ref=sr_1_1?ie=UTF8&s=books&qid=1243014431&sr=8-1
OOP and Coding Against Frameworks
http://www.adobe.com/devnet/actionscript/articles/oop_as3.html
http://www.actionscript.org/resources/articles/684/1/Object-Oriented-Programming-in-AS3/Page1.html
Version control
http://tortoisesvn.net/downloads
http://versionsapp.com/
http://en.wikipedia.org/wiki/Revision_control
http://git-scm.com/
http://www.nongnu.org/cvs/
ที่มา
ของใหม่ใน FlashPlayer 10.1
Jan 9th
FlashPlayer รุ่นนี้นอกจากจะแก้ Bug จุดต่างๆแล้ว ก็ยังมีจุดเด่นก็คือรองรับ SmartPhone เต็มตัวแล้ว
ทำให้เราสร้าง Application Flash บน SmartPhone ได้ (ยกเว้น iphone แต่ cs5 สามารถสร้าง app บน iphone ได้อยู่แล้ว) และยังมีอีกจุดเด่นก็คือรองรับในการใช้ GPU ( Graphic Processing Unit) ในการแสดงผล Video H.264 หรือพวก Mpeg ต่างๆซึ่งเราเลือกใช้ Video ได้มากกว่า FLV ซึ่งฟีเจอร์นี้จะสนับสนุนฝั่ง windows ก่อนเป็นส่วนใหญ่
ด้านล่างนี้เป็นการ์ดแสดงผลที่ลองรับ
Desktop
GeForce GTX 295
GeForce GTX 285
GeForce GTX 285 for Mac
GeForce GTX 280
GeForce GTX 275
GeForce GTX 260
GeForce [...]
ของใหม่ใน AIR 2.0
Jan 9th
คุณสมบัติเด่นของ Adobe AIR 2.0
* API สำหรับโปรแกรมที่เขียนด้วย AIR เรียกใช้และทำงานกับโปรแกรมแบบ native
* API สำหรับโปรแกรมที่เขียนด้วย AIR สั่งเปิดไฟล์เอกสารด้วยโปรแกรม default ของระบบปฏิบัติการ (เช่น สั่งเปิด PDF ด้วย Acrobat)
* API สำหรับเรียกใช้ไมโครโฟนของคอมพิวเตอร์ ทำโปรแกรมสนทนาด้วยเสียงได้แล้ว
* Detect USB mass storage ทำให้ AIR จะสามารถดึงข้อมูลจากแฟลชไดร์ฟ, กล้อง หรืออุปกรณ์เก็บข้อมูลชนิดอื่นๆ ที่เสียบเข้าไปตอนหลังได้ทันที
* ปรับปรุงระบบ socket [...]
ทำความรู้จักกับ Processing
Jan 9th
Processing คือ open cource เหมาะกับผู้ที่ต้องการจะเขียนโปรแกรมกับ image,animation,interaction
มีการใช้งานโดย นักเรียน,artists,designers,นักวิจัย และบุคคลทั่ง
มันถูกสร้างขึ้นเพื่อสอนพื้นฐานของการเขียนโปรแกรมคอมพิวเตอร์ในลักษณะ visual
และเป็นซอฟต์แวร์ sketchbook และ professional production tool
Processing ดาวโหลดได้ฟรืที่ download มีทั้ง GNU/Linux,MacOS X ,and Windows และคุณสามารถเข้าไปจอยและให้ข้อมูลได้ที่ http://dev.processing.org/
ซึ่งรวมถึงการติดตามข้อผิดพลาดและให้คำแนะนำสำหรับการสร้าง code การดาวโหลด source code และการสร้าง libraries และ เครื่องมือ
Processing ได้ถูกริเริ่มโดย Ben Fry และ Casey Reas
มันถูกพัฒนามาจากแนวคิด การ สำรวจ ใน Aesthetics และ Computation Group
ที่ MIT Media Lab
บทความต่อไปเราจะมาเริ่มลงโปรแกรมและเขียนอะไรเล่นๆกันดูซักหน่อยนะครับ
ค้นหาข้อมูลเพิ่มเติมได้ที่นี่
http://processing.org/
http://processing.org/learning/
ตรวจสอบ Local Drives กับ Adobe AIR
Dec 19th
ในบทความนี้เราจะมาลองใช้ file system ของ air มาลองตรวจสอบดูว่ามี drive อะไรที่อยู่ในเครื่องเราบ้าง
หรือเราอาจจะนำมาใช้ในการตรวจสอบการเสียบ usb หรือ sd card ก็ได้ครับ ถ้าเป็นบน mac เราจะใช้
File(’/Volumes/’).getDirectoryListing() และถ้าเป็น window เราจะใช้ File.getRootDirectories()
และเก็บข้อมูลที่ได้ลง Array ตามตัวอย่างด้านล่างนี้
import flash.filesystem.File;
import flash.system.Capabilities;
private function getDrives():void
{
[...]
การนำ swc เข้ามาใช้ใน flex builder
Dec 8th
ถ้าใครยังไม่ได้อ่านบทความก่อนหน้านี้ผมอยากให้กลับไปอ่านก่อนนะครับจะได้ต่อเนื่องเพราะว่าในบทความนี้ผมจะขอต่อจากบทความที่แล้วนะครับ
จะว่ากันด้วยเรื่องการ import ไฟล์ swc เข้ามาใช้งานใน flex แล้วก็ดึง component ที่อยู่ใน swc มาใช้งาน
เอาหละครับเรามาเริ่มกันเลยนะครับ
1.คลิ๊กขาวที่โปรเจคแล้วเลือก properties
2.เลือก Flex Build Path
3.เลือกแท็บ Library path
4.คลิ๊กที่ปุ่ม Add SWC แล้วก็ไปเลือกไฟล์ swc ที่เราต้องการนำมาใช้ในที่นี้เรามีอยู่แล้วจากบทความที่แล้วชื่อว่า myLibrary.swc
5.OK แล้วก็ OK ครับ
ทดสอบ
ตอนนี้เรามี component ที่ชื่อว่า FirstComponent อยู่ในโปรเจคเรียบร้อยแล้วซึ่ง package อยู่ที่ com.FirstComponent ก็เหมือนกับ path ที่เราสร้างในโปรเจค Library ไงครับที่นี้เราลองมาเรียกใช้กันดีกว่านะครับ
1.เพิ่ม name space ไปที่ Application ให้ตรงกับ package ในโปรเจ็ค Library แล้วตั้งชื่อว่า com เพราะฉนั้นเมื่อเราจะเรียกจาก mxml เราก็จะเรียกผ่าน name space นี้ ดังตัวอย่างต่อไปนี้ครับ
<mx:Application [...]
การสร้างโปรเจค Library ใน Flex
Dec 8th
มีคำถามอยู่คำถามนึงครับที่ผมโดนน้องๆถามประจำว่าทำไมต้องทำ swc ด้วย ตอบง่ายๆครับก็เอาไว้เก็บพวก component ที่เราต้องได้ใช้บ่อยๆครับ
ถ้าใครจะไม่ใช้ก็ได้นะครับแต่เวลาที่ต้องการใช้ทีก็ต้อง copy โฟล์เดอร์ component ไปทั้งโฟล์เดอร์เลยทีเดียว
ถ้าอย่างนั้นตอนนี้เรามาเริ่มการสร้างโปรเจค Library กันเลยแล้วกันนะครับ
1. Select File > New > Flex Library Project
2.กำหนดค่าต่อไปนี้ให้กับโปรเจค
-Project name: myLibrary
-Project contents:Use default location
-Flex SDK Version:Use default SDK
3.Finish แล้วเราจะได้โครงสร้างของโปรเจคหน้าตาแบบนี้ครับ
4.สร้างโฟล์เดอร์ com ขึ้นมาให้อยู่ในโฟล์เดอร์ src โดยคลิ๊กขวาที่ src->New->Folder หรือคุณจะสร้างชื่ออะไรก็ได้ครับ เพราะมันจะเป็น package ของ component เรา
5.ต่อไปก็สร้าง component ขึ้นมาเพื่อทดสอบโดยคลิ๊กขวาที่โฟล์เดอร์ com->New->MXML Component
6.ตั้งค่าต่างๆของ component ดังนี้
Filename : FirstComponent
Base on : Canvas (เป็นการสืบทอด class มาจาก [...]
การติดต่อกันระหว่าง Flash และ Flex
Dec 7th
แน่นอนครับหลายคนเคยคุยและถกเถียงกันมามากแล้วว่า flex วาดรูปไม่ได้เหมือน flash ในบทความนี้เราก็เลยจะมาพูดกันถึงเรื่องการนำ file swf ที่สร้างจาก flash professional มาใช้ใน flex และแค่เรียกเข้ามาใช้อย่างเดียวไม่พอครับเรายังสามารถที่จะเข้าถึง timeline หรือ function หรือ instance ทุก instance ที่อยู่ใน swf ได้อีกด้วยฟังแค่นี้ก็อยากรู้แล้วใช่มั้ยหละครับถ้าอย่างนั้นเรามาเริ่มกันเลยแล้วกันครับ
1.สร้างโปรเจคใน flash professional ขึ้นมาครับแล้วเซฟชื่อว่า flashtoflex.fla จากนั้นก็วาง component ลงไปดังนี้ครับ
2.ตั้งชื่อให้กับ control ทั้งคู่ดังนี้
button = btn
textInput = txt
3.สร้าง function ไว้ใน timeline frame ที่ 1 เป็น function ที่รับค่าที่เป็น string เข้ามาแล้วเอาไปใส่ให้กับ property text ของ textInput
function addTextToBox(str:String):void
{
[...]
Flex 3 Localization(เปลี่ยนภาษาตอน runtime)
Dec 6th
แน่นอนครับว่าเว็บในปัจจุบันเราต้องการที่จะมีมากกว่าหนึ่งภาษาและสำหรับ flex ก็ทำได้เช่นกันครับในบทความนี้เราจะมาเรียนรู้ถึงการทำ Localization ให้เปลี่ยนภาษาตอน runtime หรือพูดง่ายๆก็คือให้ user สามารถเปลี่ยนภาษาได้เองครับ
1.สร้างโฟล์เดอร์ locale ในโฟล์เดอร์ src ที่อยู่ในโปรเจคของเรา
2.สร้างโฟล์เดอร์อีกสองโฟล์เดอร์ในโฟลเดอร์ locale ชื่อว่า en_US และ th_TH
3.ในโฟลเดอร์ en_US และ th_TH ที่เราได้สร้างเมื่อกี้ให้เราสร้างไฟล์ไว้ทั้งสองโฟล์เดอร์มีชื ่อว่า resources.properties อย่าลืม save เป็น UTF-8 นะครับ
4.เมื่อเราได้ไฟล์ resources เรียบร้อยแล้วเราก็ใส่ข้อมูลเพื่อที่จะนำมาทดสอบดูดังนี้
-locale/en_US/resources.properties
title=hello
-locale/th_TH/resources.properites
title=สวัสดี
5.คลิ๊กขวาที่โปรเจคเลือก properties แล้วเลือกที่ Flex Compiler ในช่อง Additional compiler arguments: ให้ใส่ข้อความนี้ลงไป -locale=en_US,th_TH -source-path=locale/{locale} เพื่อเพิ่ม option ให้กับ compiler
6.copy โฟลเดอร์ en_US ที่อยู่ใน C:\Program Files\Adobe\Flex Builder 3\sdks\3.2.0\frameworks\locale แล้วก็ past [...]
Error generating final archive: Debug certificate expired
Dec 5th
หลายคนเจอ error นี้หลังจากติดตั้ง android sdk เรียบร้อยแล้วในบทความนี้เราจะมาแก้ไขปัญหาให้ eclipse สามารถที่จะ compile ได้โดยไม่ error อีกต่อไป
1.ลบไฟล์ debug.keystore ที่อยู่ตาม path ของ Default debug keystore ส่วนใหญ่จะอยู่ที่ C:\Documents and Settings\[ชื่อเครื่อง]\.android
2.เข้าไปที่ Regional and Language Options ที่อยู่ภายใน Control Panel
3.เลือกภาษาเป็น English(United States) และ United States
4.OK
ในบทความต่อๆไปเราจะมาเริ่มเขียน application กันนะครับ
ติดตั้ง Android SDK
Dec 5th
บทความนี้เหมาะสำหรับผู้ที่ต้องการจะเริ่มต้นพัฒนา android เรามาเริ่มตั้งแต่เตรียมอุปกรณ์ที่ต้องใช้และขั้นตอนการติดตั้งจนใช้งานได้กันเลยครับ
1.ดาวโหลดโปรแกรม
* Java SDK ดาว์นโหลดได้จาก (jdk-6-windows-i586.exe)
* Eclipse 3.4 ดาว์นโหลดได้จาก (eclipse-SDK-3.4-win32.zip)
* Android SDK ดาว์นโหลดได้จาก (android-sdk_r04-windows.zip)
2.ติดตั้ง Java SDK
สำหรับ java sdk ก็ติดตั้งเหมือนกับโปรแกรมทั่งไปครับ next โลด
3.ติดตั้ง eclipse
ให้คุณแตกไฟล์ eclipse-SDK-3.4-win32.zip ไปที่โฟล์เดอร์ที่ต้องการในที่นี้ขอแตกไฟล์ไปที่ dive C:\
4.ติดตั้ง android sdk
ให้คุณแตกไฟล์ android-sdk_r04-windows.zip ไปที่โฟล์เดอร์ที่ต้องการในที่นี้ขอแตกไฟล์ไปที่ dive C:\
5.ติดตั้ง plugin android ใน eclipse
* เปิดโปรแกรม Eclipse (C:\eclipse\eclipse.exe)
* คลิกเลือกที่เมนู Help > Software Updates…
* ที่หน้าต่าง Software Update and Add-ons ให้คลิกที่แท็บ Available Software
* คลิกที่ปุ่ม [...]
วิธีการ override method ใน actionscript 3
Dec 5th
คนที่ยังไม่ได้อ่านบทความ inheritance ควรที่จะอ่านก่อนนะครับเพราะว่าบทความนี้เราจะมาพูดกันต่อจากบทความที่แล้ว inheritance ในกรณีที่เราต้องการที่จะเขียนโค๊ดทับ function ที่มีอยู่แล้วใน class แม่(BaseClassTest) ตัวอย่างต่อไปนี้เราจะเอาโค๊ดเดิมของคลาส SubClassTest มาเขียนทับ
package {
public class SubClassTest extends BaseClassTest {
override public function sayHello():void {
trace(”override”);
}
public function sayGoodbye():void {
trace(”Goodbye from MySubClass”);
}
}
}
หลังจากที่เราได้เขียนโค๊ดใหม่แล้วทีนี้ก็ลองรันไฟล์แฟลชดูอีกทีครับเราจะเห็นว่ามันจะได้ผลลัพธ์ที่แตกต่างกันออกไปครับ
Hello from MyBaseClass//ได้มาจากการเรียก [...]
ทำความเข้าใจเรื่องของ inheritance
Dec 2nd
Inheritance ก็คือการสืบทอดคลาสนั่นเองหลายๆคนอาจเคยได้ยินคำนี้แล้วนะครับ
ในหัวข้อนี้เราจะมาทำความเข้าใจกันจริงๆจังๆซะทีนะครับ หลายๆคน copy โค๊ดมาจากอินเตอร์เน็ท
โดยที่หลายๆที่ใช้การ inherit แต่เราไม่ค่อยสนใจกันซะเท่าไหร่แล้วพอถึงเรื่อง override
method ก็บอกได้คำเดียวครับว่าซี้แหงแก๋เลยครับท่าน ถ้าอย่างนั้นเรามาเริ่มกันเลยดีกว่านะครับ
เราจะสร้าง file as ขึ้นมาสอง file นะครับ ชื่อว่า BaseClassTest.as และ SubClassTest.as
ทั้งสอง file นี้เราจะให้ BaseClassTest.as เป็น class แม่ และ SubClassTest.as เป็น Class ลูกที่สือทอดจาก Class Base
เขียนโค๊ดตามตัวอย่างด้านล่างนี้ลงในไฟล์ as
//BaseClassTest.as
package {
public class BaseClassTest {
public function sayHello():void
{
[...]
ทำแผ่นดินไหวด้วย actionscript 3
Dec 1st
ในบทความนี้เรามาลองทำแผ่นดินไหวง่ายๆกันด้วย actionscript นะครับ
ทำตามขั้นตอนดังต่อไปนี้นะครับ
1.File->New->Actionscript File(Actionscript 3.0)
2.File->Import->Import to Stage
3.เลือกรูปที่ท่านต้องการแนะนำให้เป็นรูปสนามหญ้าเพื่อความสมจริง
4.เมื่อรูปลงมาอยู่ที่ stage แล้วและต้องแน่ใจว่าเรา select อยู่ที่รูปนั้นด้วยแล้วกด F8 แล้วตั้งชื่อว่า mc ตามรูปแล้วโอเค
5.ที่ tab property ของ mc ให้ตั้งชื่อ instance ว่า lawn_mc
6.คลิ๊กขวาที่ frame แรกของ timeline แล้วเลือกที่ action หลังจากนั้นก็เขียน script นี้ลงไป
var posx:Number = lawn_mc.x;
var posy:Number = lawn_mc.y;
lawn_mc.addEventListener(Event.ENTER_FRAME, doIt);
function doIt(event:Event):void
{
lawn_mc.x = posx+(Math.floor(Math.random()*5));
lawn_mc.y = posy+(Math.floor(Math.random()*5));
lawn_mc.rotation = Math.random()*2;
}
หลังจากนี้ก็รันได้เลยครับโดยกด ctrl+enter
dowload source code ที่นี่
สร้างโปรแกรม Hello World กับ flash media server
Nov 29th
บทความนี้จะแสดงให้เห็นถึงการติดต่อกับ server และ server ก็ส่งอะไรมาให้กับ client
ตัวอย่างต่อไปนี้เมื่อคุณคลิ๊กที่ button มันก็จะ connect ไปที่ server แล้ว client ก็เรียกฟังชั่นใน
server-side แล้ว server-side ก็จะรีเทริน ข้อความคำว่า Hello World มาให้กับ client เมื่อ server ส่งค่ากลับมายัง client
โปรแกรมของเราก็จะนำค่าที่ส่งกลับมาโชว์ ทั้งนี้เพื่อความสะดวกเราจะใช้ไฟล์ตัวอย่างของ flash media server
ที่มันได้ติดตั้งมาให้ด้วยอยู่ในโฟล์เดอร์ C:\Program Files\Adobe\Flash Media Server 3.5\documentation\samples\HelloWorld
สร้าง user interface ตามขั้นตอนด้านล่างนี้
1.File->New->Flash File(Actionscript 3.0)
2.พิมพ์ HelloWorld ใน Document Class มันจะขึ้นข้อความ warning ให้คุณคลิ๊ก OK เพราะตอนนี้ยังไม่มี file class HelloWorld
เราจะสร้างกันต่อไป
3.ไปที่ Windows->Components คลิ๊กที่ User [...]
