Archive

Archive for the ‘วิถีทางแห่งโปรแกรมเมอร์’ Category

ความสงสัยส่วยตัวเกี่ยวกับ Storage Engine ระหว่าง Myisam กับ innodb ครับ

กุมภาพันธ์ 26, 2007 ใส่ความเห็น
ISAM (MyISAM) ซึ่งมีความรวดเร็วในการอ่านและเขียนสูง เนื่องจากมีการจัดเก็บไว้ในรูปแบบของแฟ้มข้อมูล ซึ่งรองรับการอ่านข้อมูลพร้อมๆ กันได้ (เหมาะสำหรับ Web Application) แต่อาจจะมีปัญหาเมื่อใช้งานกับระบบที่ต้องมีการอ่าน/เขียน ข้อมูลในตารางเดียวกัน พร้อมๆ กัน ที่สำคัญ ฐานข้อมูลประเภท MyISAM จะมีปัญหาเรื่อง Index เสีย และ Data Corrupt บ่อยมาก หากใช้งานใน OS ที่เป็น Windows และมีการ Shutdown อย่างไม่ถูกต้อง ซึ่งทำให้ผู้ดูแลระบบต้องมีการซ่อมแซม (repair table bad_table) ตารางทีมีปัญหาอยู่เรื่อยๆ

InnoDB ข้อดีคือ รองรับการทำ Transaction รองรับการอ่านและเขียน พร้อมๆ กันได้ดีกว่าฐานข้อมูลประเภท MyISAM และยังมีระบบ Auto Data Recovery หากมีการ shutdown โดยไม่เหมาะสม (ไฟดับ) ซึ่งในการใช้งานผู้ใช้สามารถเลือกได้ว่าจะให้ตารางใดเป็นประเภท InnoDB หรือ MyISAM ขึ้นอยู่กับความเหมาะสม (ว่าจะเลือกความเร็ว หรือ ประสิทธิภาพ)

ริจะเขียน MCV เป็น Framework ต้องศึกษา

กุมภาพันธ์ 26, 2007 ใส่ความเห็น
 
– CakePHP
– Code Igniter
– PRADO
– Symfony
– Zend Framework

วิธีเปลี่ยน Mac Address (สำหรับ W2K และ XP) โดยไม่ต้องพึ่ง PROGRAM

ธันวาคม 21, 2006 ใส่ความเห็น
วิธีเปลี่ยน Mac Address (สำหรับ W2K และ XP) โดยไม่ต้องพึ่ง PROGRAM   
วิธีที่ 1:

วิธีนี้ขึ้นอยู่กับชนิดของ NIC card (Lan card) ของคุณด้วยครับ ถ้ามันไม่ support การ  Clone MAC address คุณก็ต้องใช้วิธีที่ 2 แทน
1.   ไปที่ Start->Settings->Control Panel แล้ว double click ที่ Network and Dial-up Connections.
2.   คลิ๊กขวาที่ NIC card ของคุณ (หรือถ้ามีหลายอันก็เลือกอันที่ต้องการจะเปลี่ยนครับ แล้ว click ที่ properties.
3.   ใน “General” tab, click ที่ปุ่ม “Configure”
4.   Click ที่ “Advanced” tab
5.   ในช่อง “Property”, คุณจะเห็น “Network Address” หรือ "Locally Administered Address" คลิกไปเลยครับ
6.   ที่ด้านขวาด้านล่าง “Value”, ให้พิมพ์ Mac address ที่คุณต้องการใช้งานโดยไม่ต้องใส่เครื่องหมาย  “-“ คั่นเลข MAC address นะครับ
7.   ไปที่ command prompt (กดปุ่ม start >> run >> พิมพ์ cmd >> ok ) แล้วพิมพ์คำว่า “ipconfig /all” หรือ “net config rdr” ดูว่า Mac address ของคุณเปลี่ยนไปแล้วหรือเปล่า ถ้าไม่เปลี่ยนก็ต้องใช้วิธีที่ 2 ครับ
8.   ถ้าสำเร็จ ก็ reboot เครื่องซักรอบก็เสร็จแล้วครับ
 
วิธีที่ 2:
วิธีนี้ผู้ใช้ควรจะรู้เกี่ยวกับการใช้งาน Windows Registry บ้างครับถ้าไม่รู้ก็ใช้โปรแกรมช่วยเปลี่ยนดีกว่าครับ ไม่ควรเสี่ยง อย่างไรก็ตามการเข้าไปยุ่งกับ Registry ควร backup registry ไว้ก่อนนะครับ กันพลาด
1.     ไปที่ command prompt (กดปุ่ม start >> run >> พิมพ์ cmd >> ok ) แล้วพิมพ์ “ipconfig /all”
    1.1 จดค่า Description จาก NIC ที่คุณต้องการจะเปลี่ยน
    1.2  จดค่า Physical Address (มันคือ MAC Address นั่นแหละ)

 

2. หรือพิมพ์ “net config rdr” คุณจะเห็นอะไรประมาณนี้

         
3.    จดเลขที่อยู่ระหว่าเครื่องหมาย { }.  เช่นเมื่อพิมพ์ “net config rdr” จะได้ MAC address “00C095ECB793” คือเลขที่อยู่ใน( ) ซึ่งคุณต้องจดเลขนี้ไปด้วย {1C9324AD-ADB7-4920-B02D-AB281838637A}. 
4.     กด Start -> Run พิมพ์ “regedt32” เพื่อเปิด registry editor.  อย่าใช้ “Regedit.”
5.     Back up registry ไว้ก่อน
                                               5.1     เข้าไปที่ “HKEY_LOCAL_MACHINE on Local Machine” sub-window
                                                5.2     คลิกที่ root key “HKEY_LOCAL_MACHINE”.
                                                 5.3     เลือกตาม drop-down menu “Registry -> Save Subtree As” แล้ว save backup registry เป็น file แล้วเก็บไว้ให้ดี
6.      Go to “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{4D36E972-E325-11CE-BFC1-08002BE10318}.  แล้ว Double click.  ใน subkeys จะเป็นเลข 4-digit  จะแสดงรายละเอียดของ network adapters. 

     
7.   ไล่ดูทีละอันตั้งแต่ 0000.  ให้ดูที่ DriverDesc ว่าตัวไหนตรงกับ NIC ที่จะทำการเปลี่ยน    MAC address.   DriveDesc จะตรงกับ Description ที่คุณจดไว้เมื่อสักครู่ ถ้าไม่มั่นใจ คุณสามารถเช็ค NetCfgInstanceID ว่าตรงกับเลขที่อยู่ระหว่าเครื่องหมาย { } ที่ได้จดไว้หรือไม่  ถ้าไม่ตรงก็ต้องไล่ไปเรื่อยๆ 0001, 0002, 0003, and so on, จนกว่าจะเจอ แต่ปกติก็จะอยู่ตรง 0000 นั่นแหละครับ ของผมเจอที่ 0000 เลยครับ
8.    เช็คดูว่าใน subkey (ในที่นี้คือ 0000), ดูว่ามี keyword "NetworkAddress" อยู่ด้านขวาหรือไม่.)
 9.     ถ้าไม่มี "NetworkAddress" ให้สร้าง keyword ขึ้นมาใหม่
        9.1 Click ที่ drop down menu “Edit -> Add Value”.
        9.2  ใน Add Value window ใส่ตามนี้แล้ว click OK
            Value Name: = NetworkAddress
            Data Type: = REG_SZ
                   
           
        9.3   String Editor จะ pop up ขึ้นมา 
        9.4  ใส่ MAC address ที่ต้องการ แล้ว click OK.
        (ไม่ต้องมีเครื่องหมาย "-" คั่น แล้วก็ใส่เป็นตัวเลข 12 ตัว ห้ามขาดห้ามเกิน)
    10.  ถ้ามี "NetworkAddress" keyword อยู่แล้ว เช็คอีกครั้งว่า keyword type เป็น REG_SZ ซึ่งมันจะแสดงเป็น NetworkAddress:REG_SZ:  .  และตอนนี้จะยังไม่มี value . 
        10.1 Double click ที่ keyword NetworkAddress แล้ว String Editor window จะ pop up ขึ้นมา
         10.2  ใส่เลข MAC ที่ต้องการแล้ว click OK.
       (ไม่ต้องมีเครื่องหมาย "-" คั่น แล้วก็ใส่เป็นตัวเลข 12 ตัวห้ามขาดห้ามเกิน)

11. มี 2 วิธีที่จะทำให้ MAC address active.  ในที่นี้ผมไม่ต้องการให้ system reboot:
12.  กด Start->Setting->Control Panel  แล้ว double click ที่ "Network Neighborhood".
คำเตือน:  network connection จะหลุดหลังจากทำ "12.2"
ถ้าคุณใช้ DHCP client คุณจะได้ IP address ใหม่หลังจากทำ "12.3"
        12.1  เลือก Network Adaptor ที่คุณพึ่งเปลี่ยน MAC address.
        12.2  click ขวาที่ Network Adaptor แล้ว click "Disable." 
       แล้ว status column ที่ adaptor นี้จะเปลี่ยนเป็น "Disabled"
        12.3  click ขวาที่ Network Adaptor แล้ว click "Enable."
       แล้ว status column ที่ adaptor นี้จะเปลี่ยนเป็น "Enabled"
         12.4  ถ้าไม่สามารถ disabled หรือ enabled ขึ้นมาใหม่ได้ คุณต้อง reboot เครื่องคุณใหม่ครับ
13.  หลังจากนั้น ไปที่ command prompt แล้วพิมพ์ “ipconfig /all” เพื่อเช็ค MAC address ว่าเป็นตัวที่เราใส่ไปใหม่หรือไม่
 
การ Restore Hardware burned-in MAC Address (MAC Address เดิม)
1.     เอาค่าที่ตั้งใหม่ออก
    1.1 ถ้าคุณทำตามวิธีที่ 1 ไปที่ advanced properties window แล้วลบค่า entry ที่คุณใส่ไว้
    1.2 ถ้าคุณทำตามวิธีที่ 2 ให้ remove "NetworkAddress" keyword ที่คุณ added ใน registry.
2.   ทำตามข้อ 12 – 13 ด้านบน

Tip: ในกรณีที่คุณใช้วิธีที่ 2  คุณสามารถ Restore registry ได้ โดยเข้าไปที่ regedt32 แล้ว click drop-down menu “Registry->Restore,” แล้ว restore จาก backup registry ที่คุณทำไว้ก็ได้ครับ

sysprep

ธันวาคม 21, 2006 ใส่ความเห็น

หนึ่งโปรแกรมที่ต้อง Run หลังทำการ Ghost

sysprep (System Preparation Tool )
http://www.microsoft.com/technet/prodtechnol/winxppro/deploy/introduction.mspx
http://support.microsoft.com/kb/302577
http://service1.symantec.com/SUPPORT/ghost.nsf/docid/2000081610075225

 

 

เรื่องของเวลาที่แตกต่างกัน ^^

ตุลาคม 21, 2006 ใส่ความเห็น
อิ อิไม่ได้เขียนโปรแกรม นานสนิมขึ้นไปหลายรอบ เฮอะๆๆ เมื่อน้องถาม เรื่องการคำนวณเวลาที่แตกต่างกัน
แต่ถ้าเป็น Mysql เวอร์ชั่ย 4.1 Up ก็คงจะดีน่ะครับ จะได้โยนไปให้ DBMS จัดการให้ ด้วยคำสั้ง
  • DATEDIFF(expr1,expr2)

    DATEDIFF() returns expr1expr2 expressed as a value in days from one date to the other. expr1 and expr2 are date or date-and-time expressions. Only the date parts of the values are used in the calculation.

    mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
            -> 1
    mysql> SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');
            -> -31
    แต่ ถ้าเราใช้ตำกว่านี้ละครับ อิ อิ หลังจากที่ใช้ explod มานาน ก็ได้ลองเขียนเป็นฟังก์ชั้นขึ้นมา
  •  

    function getDateTimeDiff($xTime,$xLimit=24){
       $sessionTime=strtotime($xTime);
       $currentTime=strtotime(date("Y-m-d H:i:s",time()));
       $totalSecTime = $currentTime - $sessionTime;
       $totalSecTime=$xLimit*3600-$totalSecTime;
       if($totalSecTime < 0 ){
         return '00:00:00';
       }else{
       $hh = substr("00".floor($totalSecTime / 3600),-2) ;
       $tmpMin = $totalSecTime % 3600;
       $mm = substr("00".floor($tmpMin / 60),-2) ;
       $tmpSec = substr("00".($tmpMin % 60),-2);
       return $hh.":".$mm.":".$tmpSec;
       }
    }

    ฟังชันนี้ จะรับเวลาใน format  "2006-05-28 12:00:54" และจำนวนชั่วโมง

    และเอาเวลาที่รับมา มาเปรียบเทียบกับเวลาปัจจุบันว่า เหลืออีกกี่ ชม: นาที: วินาที 

    เช่นสมมุติ เวลาปัจจุบันคือ 2006-05-28 11:00:00 และเรียกใช้ฟังก์ชันว่า

    getDateTimeDiff("2006-05-28 10:00:00",2);

    ฟังก์ชันจะ เอาเวลาที่รับมานั่นคือ  2006-05-28 10:00:00

    มาบวกเข้าอีก 2 ชั่วโมง จึงเป็น  2006-05-28 12:00:00  และเปรียบเทียบกับเวลาปัจจุบัน นั่นคือ 2006-05-28 11:00:00

    ดังนั้นเวลาที่ฟังก์ชัน return ค่าให้คือ  1:00:00 นั่นคือ 1 ชม เต็ม

    ฟังก์ชั่นเล็ก ๆ อาจจะเป็นประโยชน์ไม่มานั้งปวดหัวกับ explode เหมือนผมน่ะคัรบ หรือเพื่อนคนไหน เขียน
    ได้สั้นกว่านี้ก็แนะนำกันเข้ามาบ้างน่ะคัรบ

  • 10 ภาษาโปรแกรมที่ควรเรียนรู้ในการทำงาน

    ตุลาคม 17, 2006 ใส่ความเห็น
    10 ภาษาโปรแกรมที่ควรเรียนรู้ในการทำงาน
     

    eWeek ทำการสำรวจตามบริษัทจัดหางานต่างๆ เพื่อสรุปเกี่ยวกับภาษา 10 ภาษาที่ถ้าเรียนรู้จนเป็นแล้วจะทำให้หางานได้ง่ายขึ้น, Resume น่าเป็นที่สนใจขึ้นมาดังนี้(ไม่เรียงตามลำดับ)ครับ

    • PHP : จำนวนตำแหน่งที่ต้องการประมาณ 1,152 ตำแหน่ง
    • C# : จำนวนตำแหน่งที่ต้องการประมาณ 5,111 ตำแหน่ง 
    • AJAX : จำนวนตำแหน่งที่ต้องการประมาณ 1,106 ตำแหน่ง
    • JavaScript : จำนวนตำแหน่งที่ต้องการประมาณ 4,406 ตำแหน่ง
    • Perl : จำนวนตำแหน่งที่ต้องการประมาณ 4,810 ตำแหน่ง 
    • C : จำนวนตำแหน่งที่ต้องการประมาณ 6,164 ตำแหน่ง
    • Ruby กับ Ruby on Rails : จำนวนตำแหน่งที่ต้องการประมาณ 210 ตำแหน่ง
    • Java : จำนวนตำแหน่งที่ต้องการประมาณ 14,408 ตำแหน่ง 
    • Python : จำนวนตำแหน่งที่ต้องการประมาณ 811 ตำแหน่ง
    • VB.Net : จำนวนตำแหน่งที่ต้องการประมาณ 2,090 ตำแหน่ง

    ทาง eWeek ยังกล่าวด้วยว่า การเรียนรู้ภาษา/เทคโนโลยีใหม่ๆ เป็นสิ่งที่โปรแกรมเมอร์ต้องทำอยู่แล้วและเลือกใช้ให้ถูกที่ถูกเวลาเท่านั้นเอง จำนวนตำแหน่งที่ต้องการนำมาจาก Dice.com ครับ

    คิดว่าถ้าจัดอันดับในเมืองไทย PHP, VB.NET, Java กินเรียบ!

    ที่มา – OSNews

    เฮอะๆๆ Java มาแรงจริงๆๆ

    ในที่สุด Google ก็สร้างบริการที่เราอยากได้มานาน

    ตุลาคม 10, 2006 ใส่ความเห็น
    ในที่สุด Google ก็สร้างบริการที่เราอยากได้มานาน
    อิ อิ ที่เนี้ยก็สบายเราแล้ว อิ อิง่านต่อการเขียน Code