MySQL with Innodb Performance Optimization (1)

เป็น Slide PDF จากงาน OSDBCON 2006 เรื่อง Innodb Architecture and Performance (PDF)

เรื่องพวกนี้รวบรวมและอ้างอิงจาก http://www.mysqlperformanceblog.com

ผมตัดมาเฉพาะส่วนของการทำ Optimization เท่านั้นครับ เอาไว้ให้อ่านกันง่าย ๆ ผมจะพยายามอธิบายในแต่ละส่วนให้เข้าใจง่าย ๆ อีกทีนึง แต่ถ้า Slide อันไหน มันมีความอยู่ในตัวเองพออยู่แล้วจะไม่อธิบายเพิ่มเติมครับ

Do not use defaults

  • Default settings are for toy databases
    • 8MB buffer pool, 10MB logs size
    • Not enough for any serious load
  • Innodb is affected by buffer sizes much more than MyISAM
    • Advanced caching
    • Synchronous IO

Sizing Buffers

  • innodb_buffer_pool_size
    • Typical value 60-80% of memor (If Innodb is only your storage engine)
  • key_buffer_size
    • May be still needed for temporary tables
    • Some 32MB is enough
  • log_buffer_size
    • 4-8MB is enough for most cases

ในส่วนของ Slide ทั้ง 2 หน้านี้จะพูดถึงเรื่องของ defaults config ของ MySQL ที่เมื่อลงแล้วจะได้มา โดย buffer pool เนี่ย มันไม่พอต่อความต้องการแน่ ๆ โดยตัว buffer pool เหมือนถังน้ำบนดาดฟ้าตึกที่ให้การไหลน้ำของอาคารนั้นไหลอย่างสม่ำเสมอ และเพียงพอ แต่ถ้า buffer pool เล็กเกินไป จะทำให้ข้อมูลส่งและรับไม่สมดุลกัน เวลามีการ query ข้อมูลใหญ่ ๆ ออกมาตัว client จะรับไม่ทัน (หลาย 10MB หรือ หลาย GB) รวมไปถึงในกรณีที่ส่งข้อมูลออกไปไม่ทัน เมื่อมีการโหลดข้อมูลหลาย ๆ connection และหลาย ๆ transaction ในกรณีนี้ต้องปรับให้สมดุลกัน

Sizing Log Files

  • Larger log files – better performance
    • Reduces amount of flushes needed
    • Increases recovery time
  • Use log files which give you recovery time you need
    • Combined size about 1GB is reasonable value
  • Resizing is a bit complicated
    • Removing old log files so new ones are created

ขนาดของ log file ไม่ควรใหญ่มาก ลบมันออกไปซะบ้าง เพราะมันจะมีผลเวลาเราต้อง recovery ตัวฐานข้อมูล log เก่า ๆ ที่ไม่จำเป็น (จริง ๆ) ก็ลบมันซะครับ

Optimizing IO

  • Avoid Double Buffering
    • Same data cached in OS cache and buffer pool
      • Waste of memory
    • Innodb cache is much more efficient
    • Use unbuffered IO
  • Linux
    • innodb_flush_method=O_DIRECT
    • May slow things down write performance

Optimizing Commits

  • ACID Commits require flush to the disk
    • Expensive, limited to 100-250/sec uncached
    • RAID with battery backup cache can improve dramatically (1000/sec+)
  • Group commit broken in MySQL 5.0
    • Unless you disable binary log and sacrifice recovery from backup
  • innodb_flush_log_at_trx_commit=2

Other Variables

  • innodb_additional_mem_pool_size
    • Used for data dictionary and other data
    • Automatically increased as needed
    • Do not set too high, avoid memory waste
  • innodb_thread_concurrency
    • Limit number of Threads running in kernel
    • 2*(NumCPUs+NumDisks) – in theory
    • Optimal may be much smaller in practice

กำหนด innodb_additional_mem_pool_size ให้พอดี ไม่ต้องเยอะมาก เพราะมันเป็นแค่ที่เก็บ data dictionary เท่านั้น ส่วนของ innodb_thread_concurrency ไว้กำหนดจำนวน Thread สำหรับทำงานกับ Innodb ให้ไม่เกินกว่าที่ควรจะเป็น มีสูตรคำนวณคือ 2 * (NumCPUs+NumDisks)

innodb_file_per_table

  • Use its own tablespace for each table
  • System tablespace is still used for undo segments and metadata
  • Easier to backup, reclaim space
  • Performance effect varies
  • Problems with very large number of tables
  • Less tested than default configuration

กำหนด innodb_file_per_table ซะ เพราะมันจะช่วยแบ่ง tablespace ที่เป็นไฟล์ ibdata1 ใหญ่ ๆ เป็นก้อนเดียว ยิ่งฐานข้อมูลใหญ่เท่าไรไฟล์ tablespace ก็ใหญ่เท่านั้น คราวนี้มันจะตัดแบ่งไฟล์ออกมาเป็นแบบเดียวกับ MyISAM ที่จะมีไฟล์ *.MYD เป็นไฟล์ข้อมูล ถ้าเป็น innodb แบบ innodb_file_per_table จะเป็นไฟล์ *.ibd แทน โดยเหมาะกับ File-System บางแบบ ที่ไม่สามารถรองรับไฟล์ใหญ่ ๆ ได้ (เช่น FAT32 ที่รองรับไฟล์ 1 ไฟล์ได้ไม่เกิน 4GB) และช่วยให้การ Backup ง่ายขึ้นด้วย แต่ก็แลกกับจำนวนไฟล์ที่เยอะแบบบ้าเลือดแบบเดียวกับ MyISAM แต่สำหรับผมแล้วคุ้มมากกว่า เพราะถ้าไฟล์ table space ไฟล์หลัก ที่มีไฟล์ไฟล์เดียวเสีย ข้อมูลทั้งหมดหายเกลี้ยง ๆ แต่การทำ per_table กลับช่วยแก้ปัญหาตรงนี้ลงไปได้เยอะ แถมลดเวลาการ recovery และ repair ไฟล์เวลาเกิดปัญหาด้วยครับ

ตอนต่อไปเราจะมาต่อกัน ยังมีอีกเยอะเลย ครับผม ;)

 

ติดตั้ง SVN Server บน Windows ภายใน 10 นาที

เป็น entry ที่อยู่ใน Draft นานเป็นอันดับต้น ๆ (เกิน 1 ปีแน่  ๆ) แต่จนแล้วจนรอด มันรกหูรกตาเลยเอามาปัดฝุ่นเขียนเพิ่มเติม และเอาออกมาสักทีนึง

ใครไม่รู้ว่า SVN คืออะไรก็ตามไปอ่าน entry เก่าได้ที่นี่

สิ่งที่ต้องเตรียมก่อนในการติดตั้ง (เวลาดาวน์โหลดไม่นับรวมเวลาในการติดตั้ง) คือ SVN Server ซึ่งเป็นตัวจัดการไฟล์ที่เรานำมาใส่ใน Store ของมัน และ SVN Service เป็นโปรแกรมเล็ก ๆ ที่นำ SVN Server เข้าไปอยู่ใน Services list ของ Windows เพื่อให้ตัว SVN Server ทำงานในระดับ Background Application และสามารถสั่งให้ SVN Server ทำการเริ่มการทำงานทั้งแต่เปิดเครื่องผ่าน Services ของ Windows เองได้อย่างง่าย ๆ

SVN Service

Summary : Runs svnserve as a Windows service (requires .NET Framework 1.1)

Category : libraries

License : GNU General Public License

Owner(s) : ricos, sclerose

การติดตั้งทั้งหมดอ้างอิงบน Windows XP Professional

  1. ดาวน์โหลด SVN Server ได้จาก http://subversion.tigris.org/ และดาวน์โหลดตัว SVN Service จาก http://svnservice.tigris.org/ 
  2. ติดตั้ง SVN ลงใน c:\svn\ หรือ directory ใด ๆ ที่ต้องการก็ได้ (ใน entry นี้อ้างอิง c:\svn\ ครับ)
  3. ทดสอบว่ามันจะทำงานได้หรือเปล่าก็เปิด Commnand Prompt(พิมพ์ cmd ที่ Start > Run)
  4. ไปที่ c:\svn\bin (พิมพ์ cd c:\svn\bin)
  5. พิมพ์ svnadmin เพื่อทดสอบดู
    ถ้าขึ้นว่า “svnadmin.exe – Unable To Locate DLL”
    ให้ติดตั้ง Visual C++ 6.0 VCREDIST.exe โดยดาวน์โหลดได้ที่นี่ ถ้าสั่งให้ทำงานแล้วไม่มีปัญหา ก็ทำการทดสอบส่วนของ svnserve.exe เพื่อทดสอบว่าสามารถสั่งให้ SVN Server ทำงานได้หรือไม่
  6. พิมพ์ svnserve -r d:\svndatarootdir
    โดยที่ svndatarootdir คือ directory ที่ใช้สำหรับเก็บ repository ทั้งหมดของ svn ของเรา
  7. ถ้าใช้คำสั่งในข้อ 6 แล้วไม่มีปัญหา ให้ปิด Commnand Prompt แล้วติดตั้ง SVN Service
  8. ทำการเรียก SVNService Administration

    2007-12-08_052919

  9. แล้วทำการตั้งค่าดังนี้

    2007-12-08_051949 
    – ช่อง SVN Binary Path ให้ชี้ไปที่ c:\svn\bin ที่เก็บตัว binary file ของ svnserve.exe
    – ช่อง Repository Path ให้ชี้ไปที่ svndatarootdir หรือที่เก็บ directory ของ repository ทั้งหมด (ในตัวอย่างเป็น d:\svn)
    – Listen Host อันนี้กำหนด IP หรือ Hostname สำหรับใช้ติดต่อเข้ามา ซึ่งถ้าใช้คนเดียวก็กำหนดเป็น localhost ไปครับ
    – Listen Port กำหนด Port ที่เข้าใช้ SVN Server แนะนำให้ใช้ Port 3690 ไปเลยครับผม เพราะเป็น Port มาตรฐานของ SVN Server อยู่แล้ว
    – กด Save และ Close ปิดไปครับ

  10. เข้าไปทั้งค่า Service เพิ่มเติมที่ Service ของ Windows ได้ที่ Administrative Tools (ถ้าหาใน Start ไม่เจอให้ไปที่ Control Panel และไปที่ Administrative Tools ก็ได้)

    2007-12-08_053608

  11. ไปหา Name ที่ชื่อว่า SVNService แล้วดับเบิ้ลคลิ้กเรียก SVNService Properties ขึ้นมา

    2007-12-08_053739

  12. แล้วตั้งค่าที่ Startup type เป็น Automatic เพื่อให้เมื่อเปิดเครื่องมาให้ SVNService ทำงาน แล้วตัว SVNService จะไปเรียก svnserve พร้อมตั้งค่าตามที่เราตั้งไว้ใน SVNService Administration มาให้ แล้วกดปุ่ม Start เพื่อให้ SVNService ทำงาน

    2007-12-08_053928

  13. ถ้าทุกอย่างราบรื่น ตอนนี้เราก็จะได้ SVN Server ขึ้นมาทำงานแล้ว

ต่อไปเป็นส่วนของการทดสอบ และตั้งค่า Repository และ SVN Server ที่เราติดตั้งว่าทำงานปกติหรือไม่

  1. ให้ดาวน์โหลด TortoiseSVN (A Subversion client, implemented as a windows shell extension.) มาติดตั้ง
  2. สร้าง directory ใหม่ใน d:\svn หรือที่เก็บ repository ทั้งหมด

    2007-12-08_054836 

  3. ทำการสร้าง Repository ใหม่

    2007-12-08_054927

  4. แล้วเลือก Native filesystem

    2007-12-08_055011

    2007-12-08_055035

  5. เราจะได้โครงสร้าง Directory ทั้งหมดภายใน d:\svn\test ดังภาพนี้

    2007-12-08_055133

  6. ทดสอบว่า test repository ของเราทำงานได้หรือไม่ก่อน
  7. คลิ้กขวาที่ Desktop แล้วเลือก TortoiseSVN แล้วเลือก Repo-browser

    2007-12-08_054536 

  8. แล้วพิมพ์ URL ดังรูปนี้

    2007-12-08_055623
     

  9. แล้วเราจะได้หน้าต่างของข้อมูลภายใน test repository แบบด้านล่าง (ว่าง ๆ เพราะไม่มีอะไรอยู่ภายใน) ถ้าได้ดังรูปด้านล่างนี้และ expanded ตัว list ออกมาได้โดยไม่มีการแจ้ง error ใด ๆ ถือว่า SVN Server ทำงานได้สมบูรณ์แล้ว

    2007-12-08_055641

สำหรับตอนต่อไป (คราวนี้สัญญาว่าจะลงให้เร็วที่สุดแน่ ๆ) จะเป็นการกำหนดค่า ต่าง ๆ ในการเข้าใช้งานเช่น username/password สำหรับเข้าถึงข้อมูล รวมไปถึงระบบสิทธิ์การเข้าถึงแต่ละ user ที่เข้ามาใช้ด้วยครับ

วันนี้ขอไปนอนก่อนหล่ะครับ ;)

[Update 11/12/2007]

อ้างอิงจาก

 

แก้ปัญหาจุกจิกหลาย ๆ อย่างใน IE 5/6 ด้วย IE7 { css2: auto; }

เจ้า IE7 { css2: auto; } นั้นตอนนี้เป็น version ที่ 0.9 (alpha) แล้ว และหยุดพัฒนาตั้งแต่ปี 2005/08/19 โดยหลัก ๆ ที่เอามาใช้เพราะนำมาแก้ไขปัญหา PNG alpha transparency ใน IE5/6 นั้นเอง และ JavaScript ตัวแก้ไขตัวนี้ก็ทำงานได้ดีตลอดมา ผมนำไปใช้กับ Siampod.com และได้ผลดีมาก ๆ แต่เว็บ blog ตัวเองก็ยังไม่ได้ใส่มัน -_-‘ เดี่ยวใส่วันสองวันนี้แหละ เริ่มวาง ๆ แล้ว ;)

IE7 is a JavaScript library to make IE behave like a standards-compliant browser. It fixes many CSS issues and makes transparent PNG work correctly under IE5 and IE6.

  • supports the following CSS selectors:
    • namespace|selector
    • parent > child
    • adjacent + sibling
    • adjacent ~ sibling
    • [attr], [attr="value"], [attr~="value"] etc
    • .multiple.classes (fixes bug)
    • :hover, :active, :focus (for all elements)
    • :first-child, :last-child, only-child, nth-child, nth-last-child
    • :check, :disabled, :enabled
    • :root, :empty, :contains(), :not()
    • :before/:after/content:
    • :lang()
  • works with both HTML and XML documents
  • supports imported style sheets
  • preserves the cascade of the style sheet
  • does not alter the document structure
  • does not repeatedly query the DOM tree using JavaScript
  • uses pure CSS to enforce style sheet rules
  • supports the W3C box model in both standards and quirks mode
  • supports fixed positioning (flicker free)
  • supports overflow:visible
  • supports min/max-width/height
  • fixes broken (X)HTML elements (abbr, object)
  • standardies forms behavior
  • supports PNG alpha transparency
  • lightweight script (22K)
  • completely modular (add/remove fixes)
  • works for Microsoft Internet Explorer 5+ (Windows only)

[Update 11/11/2007 1:38am]

นั่งแก้ มันทำไมใช้ไม่ได้ก็ไม่รู้ พอหา ๆ ใน Google เจอคนมีปัญหาแบบเดียวกัน แต่สรุปได้ว่า เพราะใช้ Themes K2 นี่เอง T_T คนใช้ IE 6 ก็เศร้ากันไปนะครับ อันนี้ช่วยไม่ได้ ฮา ….

 

Live @ MSDN – Thailand REMIX 2007

10.25 – จากบริเวณห้องบอลรูม โรงแรมแชง-กรีล่า กรุงเทพฯ

ผมมาสายเนื่องจากว่ารถไฟฟ้าอ่อนนุชดันขัดข้องเลยมาสายซัดไป 10 โมงกว่า ๆ กว่าจะได้เข้ามาลงทะเบียน และได้ข้อมูลเบื้องต้นจากแฟ้ม และกรอกแบบสอบถามเพื่อรับแผ่น DVD Microsoft Visual Studio 2008 beta 2 ซึ่งตอนที่มาถึงนั้น keynote ช่วงเช้าก็เสร็จสิ้นไปแล้ว เลยรอในส่วนของการสมันาและ word-shop แบบแยกห้องอีกที โดยผมเข้าไปในส่วนของ web-developer ซึ่งน่าจะมีการ review และ hand-on ในส่วนของ SilverLight ครับ

11.00 – จากห้องบอลรูม (Web Development, Building Rich Web Experiences Using SilverLight and JavaScript for Developers) โรงแรมแชง-กรีล่า

REMIX 07 - 1

REMIX 07 - 2

11.00 – ตอนนี้อยู่ในส่วนของ Section Web Developerment โดยพูดถึงส่วนจุดเริ่มต้นและจุดประสงค์ของ SilverLight

11.05 – สามารถทำ Cross Browser และ Cross Platform ได้โดยตอนนี้สนับสนุน Browser Internet Explorer (แน่นอนของ Microsoft), Mozilla Firefox และ Safari (Opera ยังมีปัญหานิดหน่อย)

11.06 – สามารถสร้าง user interface โดยใช้ลักษณะรูปภาพแบบ Vector
– สามารถเล่นไฟล์มีเดียต่าง ๆ ได้
– โดยจะได้ลักษณะภาพเคลื่อนไหว และ effect ต่าง ๆ โดยที่จะรองรับทั้งรูปภาพ(Vector และ Raster) และไฟล์ Video

11.07 – คำถามที่มักถูกถามถึงก็คือ SilverLight คือ Flash clone ? คำตอบคือ “มันเป็นอีกระดับของ Flash และการพัฒนาอีกขั้นของ VML (Vector markup language) ที่ทำขึ้นโดย Microsoft”

11.08 – โดยที่ SilverLight เป็o platform สำหรับวาดรูปภาพแบบ vector, การส่งข้อมูลแบบ Rich media content และ user experience โดย animation, interactive interface ซึ่งจริง ๆ แล้วก็ทำได้เช่นเดียวกับ Flash (แนว ๆ ว่าทำได้เหมือน Flash นั้นแหละ !!!)

11.10 – ความละเอียดใน media แบบ video คือ 1280×720 รองรับระดับ HD, WMV, VC-1 (H.264), โดย WMV จะเป็น container โดยที่จะใช้ WMV เองหรือจะใช้ VC1 + WMA Track ก็ได้ รวมไปถึงไฟล์เสียงก็ใช้ WMA หรือ MP3 ก็ได้
– โดยที่รองรับทั้ง Live Streaming หรือ On-Demand Content
– ไฟล์เสียงนั้นทำงานได้ในระดับ CD Quality ที่ 64kbps, Radio ที่ 32kbps และ HD Video Content at 2Mbps

11.12 – Demo Audio Quality, Video Quality (ตอน Demo รู้สึกว่าจะมีการผิดคิวไปหน่อย -_-‘ เสียงไม่เหมือนต้นฉบับ เรียกเสียงฮาได้ดี)

11.18 – Basic concept ของ Rich Internet Application

11.20 – เปรียบเทียบระหว่าง Technical อื่น ๆ เช่น JavaScript + DOM และ Flash/Flex

11.25 – Demo การสร้าง SilverLight สำหรับเล่นไฟล์ media บนเว็บด้วย Visual Studio 2008 beta 2 (Orcas)

11.30 – Hosting Environment, ไม่จำเป็นต้องลง .NET บน Web Server, โดยที่ Web Server นั้นสามารถใช้ได้ตั้งแต่ IIS, Apache, Tomcat, Lighttpd ฯลฯ

11.45 – Platform convergence – รองรับ Web Browser แทบทุกตัว (อันที่ได้บอกไว้ข้างต้น) โดยที่ตัว runtime มีขนาดประมาณ 2MB

11.48 – SilverLight 1.1 กำลังมา (Wow !!!)

11.49 – ปัจจุบัน !!! สามารถเขียนได้ด้วย C# และ VB.NET และในอนาคตนั้นก็เขียนได้ด้วย IronRuby และ IronPython

11.50 – Better performance และปัจจุบันมีคนเขียน SilverLight เพื่อสร้าง 3D Action Games. ได้แล้ว (ทั้ง ๆ ที่ตัว release ต่อไปจะมี API เืพื่องานนี้โดยเฉพาะ และง่ายกว่า)

11.55 – ความสามารถใหม่ ๆ ใน SilverLight 1.1 ได้แก่
– Control Framework, Full keyboard and mouse system
– Standard control built-in, template and style (เหมือนกับ WPF)
– Layout System
– Data binding feature.

13.20 – จากห้องบอลรูม (Web Development, Using Visual Studio Codename “Orcas” to Design and Develop Rich AJAX Enabled Web Sites) โรงแรมแชง-กรีล่า

13.25 – อะไรคือ Visual Studio 2008 ?

13.30 – IDE Demo

13.31 – IDE Improvement demo
– Transparent Intellisense Mode (ใช้ Crtl Key ทำ Transparent ใน Intellisense เพื่อให้มองเห็น code ด้านหลังได้)
– VB Intellisense Filtering (Filter-out ตัว method ออกไปให้เหลือเฉพาะช่วงที่เราพิมพ์เท่านั้น)
– Organize Using (ทำการ Filter ตัว ‘Using’ ว่าในแต่ละไฟล์ใช้หรือไม่ใช้ และทำการลบตัวที่ไม่จำเป็นออกไป ทำให้การ Using นั้นน้อยลง และลดความซับซ้อนของ Code ด้วย)

13.40 – Multi Target Support demo
– Backward Compatible to .NET 2.0 (ไม่สนับสนุน .NET 1.0/1.1 เพราะว่า Architecture หลักนั้นแตกต่างจาก 2.0 เยอะเกินไป)
– Switch between Compatible (มีส่วน filter template project ว่า template project ไหนบ้างเหมาะสมกับ .NET ในแต่ละ version)

13.50 – LINQ (Language Integrated Query) Interface demo โดยตัวภาษาจะมีการเขียนคล้าย ๆ กับการดึงข้อมูลในภาษา SQL เพียงแต่มันสามารถสลับตัว DBMS ไปมาได้ระหว่าง SQL Server, Access หรือ XML ส่วน Oracle นั้นคาดว่าจะออกเร็ว ๆ นี้ ทำให้เข้าถึงข้อมูลใน DBMS ได้หลากหลายมากขึ้นโดยไม่ต้องเปลี่ยนแปลง code ภายในแต่อย่างใด

14.00 – Web Designer Enhancements – อันนี้คล้าย ๆ กับ Adobe Dreamweaver ไม่ต่างกันเท่าไหร่ ประมาณว่าร้อง เฮ้ยยย !!! ได้เลย เพียงแค่มันเอาไว้เขียนกับงานที่ต้องเอา C# หรือ VB.NET มาใช้งาน ทำให้สะดวกมากขึ้นในการทำให้เว็บนั้นสวยขึ้น โดยที่มีระบบ Masterpage (คล้าย ๆ กับ Template/Themes ั้นแหละครับ) เพียงแต่มันถูก build-in มาเลย

14.05 – JavaScript object type filter/detector และ debugger ที่ build-in มาใน IDE
– โดยเป็นตัว debugger สำหรับ JavaScript ตัวนี้ ok มากสำหรับในกรณีที่เราต้องยุ่งกับ JavaScript เยอะ ๆ
– เมื่อเราสร้าง object ใน JavaScript แล้ว ตัว IDE จะ detect object type ว่าเป็นแบบไหน แล้วจะ filter method ให้เหมาะสมกับ object type นั้น ๆ เวลา Intellisense ขึ้นมาทำให้ไม่สับสนว่า method ไหนใช้ได้บ้าง
– ระบบ Detect Method ที่เขียนเพิ่มเติมขึ้นมา เมื่อเราเขียน class ของ JavaScript ซึ่งก็แนว ๆ เดียวกับ C# และ VB.NET นั้นแหละ เพียงแต่คราวนี้ลงมาเล่นที่ตัว JavaScript ซึ่งเป็น Dynamic Type Language (น่าจะเป็นหนูทดลองยาของ Microsoft ในการสร้าง IDE ที่ทำงานกับ Dynamic Type Language ในอนาคต โดยเฉพาะอย่างยิ่ง Python และ Ruby และคาดว่าจะรวมถึง PHP ด้วย)
– ระบบ Debug JavaScript แบบ real-time และ mark ไว้เลยว่าตรงไหนมีปัญหา (ตัว debug มันคล้าย ๆ กับ Firebug ใน Mozilla Firefox)

14.07 – Testing Improvement (Web-site stress test and Web performance test) ส่วนใหญ่ก็เหมือน ๆ กับของค่ายอื่น ๆ เพียงแต่มีตัว Summary บอก Project manager ว่า code มีประสิทธิภาพแค่ไหน

14.45 – จากห้องบอลรูม (Web Development, Developing ASP.NET AJAX Controls with Silverlight) โรงแรมแชง-กรีล่า

14.48 – Using ASP.NET Control and AJAX

14.50 – Demo

15.00 – พูดถึงการ Control ตัวไฟล์ Video โดยใช้ตัว Control ของ ASP.NET เอง

15.00 – พูดถึงการแสดง Subtitle ที่มีอยู่ในตัวไฟล์ Video มาโชว์ใน tag HTML ทั่วไปแทนให้แสดงภายในไฟล์ Video โดยใช้ตัว Control ของ ASP.NET เอง

15.15 – 16.00 – พูดถึงการ Implement ซึ่งก็เอา ASP.NET มาสร้าง AJAX ซึ่งก็เป็นเรื่องทั่วไปที่ไม่ต่างกับภาษาอื่น ๆ เช่น PHP เป็นต้น ซึ่งการสร้าง Control ของ AJAX นั้นซัอนพอสมควรครับ ซึ่งตรงส่วนนี้ผมไม่ได้ดูรายละเอียดมากเพราะลงในระดับ Coding ของ ASP.NET และ SilverLight build-in ที่อยู่ภายใน Visual Studio 2008 นั้นเอง

Read more

 

สุดยอด 20 คำถาม/คำตอบของโปรแกรมเมอร์ หรือคนทดสอบโปรแกรมแล้วเจอปัญหา

20. “That’s weird?”
“แปลก?.”

19. “It’s never done that before.”
“ไม่เห็นมันเคยเป็นอย่างนั้นเลยนี่หว่า”

18. “It worked yesterday.”
“เฮ้ย เมื่อวานมันใช่ได้นะ”

17. “How is that possible?”
“เป็นไปได้ไงอ่ะ”

16. “It must be a hardware problem.”
“เครื่องนั้นมันเสียแหงมๆ”

15. “What did you type in wrong to get it to crash?”
“นายพิมพ์อะไรผิดอะดิ”

14. “There is something funky in your data.”
“Data ที่นายใช้ต้องมีไรแปลกๆไม่ปกติอะดิ”

13. “I haven’t touched that module in weeks!”
“เฮ้ย! กรูไม่ได้แตะต้องส่วนนั้นของโปรแกรมมาหลายอาทิตย์แล้วนะโว้ย (ไม่ใช่ความผิดกรูแน่ๆ)”

12. “You must have the wrong version.”
“นายทดสอบผิดเวอร์ชั่นอ่ะเป่า”

11. “It’s just some unlucky coincidence.”
“อ๋อ เพราะนายดวงไม่ดีอ่ะ ลองอีกทีไม่เป็นหรอก”

10. “I can’t test everything!”
“มันก็ต้องเสียอ่ะดิ ตูไม่ได้ลองทุกอย่างนี่หว่า”

9. “THIS can’t be the source of THAT.”
“อันนี้ไม่ใช่สาเหตุของอันนั้นแหงมๆ” (แล้วอันนี้ อันนั้น มันอันไหนอ่ะ คนฟังจะเข้าใจไหมเนี่ย)

8. “It works, but it hasn’t been tested.”
“อันใช้ได้นะ แต่มันยังไม่ได้ทดสอบอ่ะ”

7. “Somebody must have changed my code.”
“ต้องมีใครแอบแก้ code ผมแน่ๆ” (ก็เห็นนายทำอยู่คนเดียว จะมีใครมาแก้ได้ฟ่ะ)

6. “Did you check for a virus on your system?”
“คุณตรวจไวรัสในเครื่องคุณอ่ะยัง”

5. “Even though it doesn’t work, how does it feel?”
“ต่อให้ตรงนั้นใช้ไม่ได้ แล้วคุณทำงานได้ไหม” (ถ้าได้กรูจะไ้้ด้ไม่ต้องซ่อม)

4. “You can’t use that version on your system.”
“อ๋อ เวอร์ชั่นนั้นมันใช้กับระบบของคุณไม่ได้หนะครับ”

3. “Why do you want to do it that way?”
“ทำไมนายใช้แบบนั้นเล่า” (ก็เขาเป็น user เขาจำทำแบบไหนก็ต้องโปรแกรมตามเขาไม่ใช่เหรอ)

2. “Where were you when the program blew up?”
“ตอนโปรแกรมทำงานไม่ได้ นายอยู่ตรงไหนเล่า” (ถ้านายคอยดูอยู่ตลอดมันก็ไม่พังแล้ว โด่)

1. “It works on my machine”
“บนเครื่องผมมันก็ใช้งานได้นี่” (ก็ผมเขียนไว้ใช้คนเดียวอ่ะ มีไรอ่ะป่ะ)

จาก [DM2448048].DEVEOPER@PANTIP