XAMPP ไม่สามารลงบน Ubuntu Linux แบบ 64 Bits ได้

สำหรับท่านใดที่ลง XAMPP บน Ubuntu หรือ Linux 64 bits  แล้วไม่สามารถสั่ง start ได้ จะต้องลง package เพิ่มนะครับ วิธีลงก็ตามนี้เลยครับ

สำหรับสาย Debian

sudo apt-get install ia32-libs

หรือหากเป็นสาย Redhat หรือ CentOS

sudo yum install glibc*

 

 

บันทึกความเข้าใจเกี่ยวกับเครื่องหมายเท่ากับ (=)

เครื่องหมายเท่ากับ(=) มีหน้าที่กำหนดค่า address ไม่ใช่กำหนดค่าในทุกกรณี

เป็นต้นว่ากำหนด a=b หมายถึง ให้ตัวแปร a ชี้ address ไปที่ตำแหน่งของตัวแปร b ดังนั้นตัวแปร a กับ b เป็นตัวเดียวกัน

โดยโปรแกรมจะไม่ไม่สร้าง object ใหม่ให้หากเราไม่กำหนด ในกรณีที่ตัวแปรอื่นมีค่าซ้ำกับอีกตัวแปรหนึ่ง มันจะชี้ไปที่เดียวกันเช่น
a=3
b=4
c=a+1
จากคำสั่งข้างต้นจะได้ว่า b จะมี address เท่ากับ c เพราะค่าเท่ากัน

แล้วทำไมกรณีที่สั่ง
a=3
b=a
a=4
ทำไม b ถึงไม่เป็น 4 เพราะตามลำดับจะทำจากขวามาซ้ายคือ สร้างตัวเลข 4 ใน ram ก่อน(หรือหาจากใน ram) แล้วให้ a ชี้ไปตำแหน่งนั้น โดยไม่ไปยุ่งกับตัวแปร b ดังนั้นค่า b จึงชี้ที่เดิม คือ 3

การติดตั้ง AppLocale และใช้งาน AppLocale เบื้องต้น

AppLocale คืออะไร

AppLocale เป็นโปรแกรมที่ไว้จำลองสภาพแวดล้อมของ Windows ให้เป็นเหมือน Windows ของประเทสอื่น ส่วนมากมักใช้กับโปรแกรมหรือเกมส์ของญี่ปุ่น ที่บางทีมันจะล็อคประเทศไม่ให้เปิด หรือไม่ก็ไม่สามารถอ่านภาษาญี่ปุ่นได้อย่างถูกต้อง เลยต้องใช้โปรแกรมนี้ช่วย

สำหรับท่านที่หลงเข้ามา เราขอแนะนำโปรแกรมที่ใช้แทน AppLocae ได้ และยังช่วยดึงข้อความจากเกมส์ไปใส่ Translation Service ต่างๆ เช่น Google Translate แล้วนำมาแสดงให้ท่านอ่านอัตโนมัติ เพื่ออรรถรสในการเล่มเกมส์ โปรแกรมนั้น คือ Visual Novel Reader ครับ สามารถกดที่ลิงค์เพื่อเข้าดูได้เลยครับ

วิธีติดตั้ง

ในกรณีที่เป็น Windows XP ให้ทำข้อ 1 แล้วข้ามไปข้อ 4

  1. ดาวโหลดตัวติดตั้งจากที่นี่ (ดาวโหลด AppLocale ตรงนี้ได้เลย แก้ลิงค์แล้ว)  ให้วางไว้ที่ C:\ (ไดร์ C อ่ะแหละ แต่ไม่ต้องไว้ในโฟลเดรอ์ใดๆนะครับ)
  2. กด Start พิมพ์ CMD แล้วคลิกขวาที่ cmd.exe แล้วเลือก Run As Administrator
    How to run as administrator
  3. พิมพ์ cd \ แล้ว Enter แล้วพิมพ์ apploc.msi แล้ว Enter
    How to Install Apploc.msi As Administrator
  4. ทำการติดตั้งตามปกติ Next ไปเรื่อยๆ ยาวๆจนจบก็ใช้ได้ครับ

วิธีใช้เบื้องต้น

  1.  เปิดตัวโปรแกรม
    How to run as administrator
  2. จะได้หน้าต่างนี้มา ให้กด Next
    Applocale Windows
  3. จากนั้นกด Browse แล้วเลือกโปรแกรมที่จะจำลองสภาพแวดล้อม จากนั้นกด Next
    Browse Program for AppLocale
  4. จากนั้นเลือกภาษาที่ต้องการ จากตัวอย่างนี้คือภาษาญี่ปุน แล้วกด Next
    Select Languages for Programs
  5. จากนั้นมันจะถามว่าจะให้ตั้ง Shortcut สำหรับโปรแกรมนี้ไหม แนะนำให้ตั้ง(ให้ทำเครื่องหมายถูก) แล้วกด Finish ตัวแปรแกรมที่เราต้องการก็จะถูกเปิดขึ้นมาอัตโนมัติ
    Are you want to create shortcut?
  6. คราวหลัง หากต้องการจะใช้ก็ให้ไป Folder ของ AppLocale ถ้าตั้ง Shortcut ไว้มันก็จะมีมาให้ครับ
    Example. Shortcut for programs

ผลจากการใช้

จากรูป เกมส์ PricessMaker 4 นะครับ ก่อนใช้ตัวหนังสือเป็นตัวยึกยือ ไม่สามารถอ่านได้เลยนะครับ
Pricess Maker 4 Before use AppLocaleแต่หลังใช้เราจะเห็นว่าเป็นภาษาญี่ปุ่นที่สามารถอ่านได้ปกติ(ถ้าอ่านออกนะครับ)
Pricess Maker 4 After use AppLocale

อยากเขียนโปรแกรมเริ่มจากภาษาอะไรดี?

วันนี้เรามาคุยกันเรื่องการเขียนโปรแกรม เราควรเริ่มจากภาษาอะไรดีนะครับ โดยในปัจจุบันภาษาที่ใช้เขียนโปรแกรมมีอยูมากมายเช่นเวลาเขียนโปรแกรมทั่วไป ก็ C, C++, C#, Java, Visual Basic, Delphi และอื่นๆเป็นต้น ถ้าเขียนบนใช้บนเว็บก็มีพวก PHP, ASP, Python, Ruby, Javascript เป็นต้น

โดย ทั่วไปถ้าเราไปถามตามเว็บบอร์ดหรือใครๆมักได้รับคำแนะนำว่าควรเริ่มจากภาษา C เพราะในปัจจุบันภาษาใหม่ๆ มักจะมีรูปแบบ syntax เป็น C-Style คือมีความคล้ายคลึงภาษา C ดังนั้นเมื่อเราศึกษาภาษา C จนเชี่ยวชาญแล้วการไปเรียนต่อภาษาอื่นจึงไม่ใช่เรื่องยาก ยกเว้น Visual Basic กับ Delphi ที่ 2 ภาษานี้จะเหมือนกัน แต่ไม่เหมือนภาษา C ซึ่งผมเห็นว่าไม่จำเป็นเท่าไหร่นัก เพราะภาษา C นั้นค่อนข้างจะยุ่งยากพอสมควร ซึ่งภาษาใหม่ๆที่พัฒนามามีการพัฒนาให้ลดการยุ่งยากในเรื่องนี้ไปได้ เช่นตัวแปรชนิด String(สายอักขระ หรือข้อความต่างๆ) ที่มีใน Java, C++, C# แต่ใน C ไม่มี มีแต่ตัวแปรชนิด char(ตัวอักษร 1 ตัว) แต่ประกาศแบบ Array(แถวลำดับหรืออะไรหว่า ลืมชื่อภาษาไทย แต่ลักษณะคล้ายๆสายอักขระ แต่จำกัดขนาด) ซึงยุ่งยากต่อการใช้ เพราะมีการจำกัดขนาดเช่น เราประกาศตัวแปรรับได้แค่ 200 ตัว แต่ผู้ใช้ดันใส่มา 300 ตัว โปรแกรมก็มีโอกาศพังสูง ซึ่งภาษาใหม่ๆได้มีการแก้ปัญหานี้ด้วยตัวแปร String

แต่การเรียนภาษา C มีข้อดีคือ ฝึกกระบวนการคิดได้ดี เช่นการเขียนโปรแกรมหาคำๆหนึ่งในข้อความที่ได้รับเข้าไป โดยสมมุติว่าคำที่หามีขนาดไม่เกิน 10 ตัว และข้อความทั้งหมดมีขนาดไม่เกิน 200 ตัว

ภาษา C# เขียนดังนี้

 using System;
 namespace C_TEST{
     class Program{
         public static void Main(string[] args){
             string input;
             string find; 
             Console.Write("String: ");
             input = Console.ReadLine();
             Console.Write("Find: ");
             find = Console.ReadLine();
             if(input.IndexOf(find) > -1){
                 Console.WriteLine("Found.");
             }else{
                 Console.WriteLine("Not found.");
             }
         }
     }
 }

แต่ถ้าเป็นภาษา C จะเขียนแบบนี

#include <stdio.h>

int my_strlen(char *str){
    int i = 0;
    while(str[i] !='\0'){ //ใช้ str[i] == 0 ก็ได้
        i++;
    }
    return i;
}

int main(){
    char str[201]; //ใช้กี่ตัว ต้องประกาศเพิ่ม 1 ตัว เพราะช่องสุดท้ายจะใช้เก็บ \0 เพื่อบอกว่าจบ String
    char find[11];
    int len_str;
    int len_find;
    int i,j;
    int found = 0;
    int bool_in_loop = 0;

    printf("String: ");
    gets(str);
    printf("Find: ");
    gets(find);

    len_str = my_strlen(str);
    len_find = my_strlen(find);
    //ใช้ strlen ของ string.h ก็ได้ เป็นการนับว่ามีกี่ตัวอักษร

    for(i = 0;i<len_str;i++){        // วนให้ครบทุกตัว
        bool_in_loop = 1;             //กำหนดให้ผ่านเงื่อนไข
        for(j=0;j<len_find;j++){   // วนเพื่อตรวจว่ามีคำที่หาไหม
            if(i+j >= len_str){         //ตรวจว่าไม่เกินความยาวของ String หลัก
                bool_in_loop = 0;    //ถ้าเกิน ไม่ผ่าน
                break;                      //จบ Loop นี้
            }
            if(str[i+j] != find[j]){     //ตรวจว่าตรงกันไหม
                bool_in_loop = 0;    //ถ้าไม่ตรง กำหนดให้ไม่ผ่าน
                break;                      //จบ Loop นี้
            }
        }
        if(bool_in_loop == 1){    //ตรวจว่าผ่านไหม
            found++;                   //ถ้าผ่าน ให้เพิ่มตัวนับ
        }
    }

    if(found == 0){                  //ถ้าเจอไม่เจอ
        printf("Not found.");
    }else{                                 //ถ้าเจอ
        printf("Found.");
    }
    return 0;
}

 

จะเห็นได้ว่า Code ยาวและยุ่งยากกว่ามาก ซึ่งถ้ามองในแง่การใช้ถือว่าเสียเวลาเขียน แต่ในแง่ของการฝึก เป็นการฝึกให้คิดได้ดีพอสมควร ต้องใช้ loop 2 ชัั้นเพื่อตรวจเลยทีเดียว แถมยังต้องกำหนดขนาดของ char array ด้วย

ดังนั้นผมเห็นว่าการที่เราจะเลือกเรียนภาษาใดๆ ควรเลือกให้เหมาะสมกับงานไปเลยดีกว่าครับ เช่น

  • Java งานที่ต้องใช้แบบ Cross Platform(ใช้งานได้ทั้ง Windows Linux หรืออื่นๆ) และเขียนโปรแกรมบน Android ภาษานี้ผมว่ามันมีข้อเสียคือถ้ามี GUI มันจะทำงานได้ค่อนข้างช้า(หรือผมเขียนแย่เองหว่า)
  • C# เขียนโปรแกรมใช้บน Windows เท่านั้น ทำงานได้เร็วกว่า Java ที่มี GUI แต่ถ้าต้องการเขียนแบบข้าม Platform ต้องใช้ GTK+ ช่วย ซึ่งทำให้ช้าลง
  • C, C++ ใช้สำหรับงานที่ต้องการประสิทธิภาพสูงมากๆ เช่นพวกเกมส์ หรือโปรแกรมคำนวนใหญ่ๆ
  • PHP, ASP, Javascript สำหรับเป็น Web Programmer โดยเฉพาะเลย
  • ภาษาอื่นๆ ไม่รู้ครับ ที่ใช้หลักๆมีแค่นี้

ส่วนภาษา Visual Basic, Delphi นั้นไม่แนะนำให้เรียนครับ เพราะมันไม่ค่อยคล้ายภาษาอื่นๆ เวลาไปเรียนรู้ใหม่มันจึงยาก

อนึ่ง การเขียนโปรแกรมบน iOS (พวก iPhone, iPad) นั้นต้องใช้ภาษา Objective-C ซึ่งผมได้ยินมาว่า เหมือนต้องเรียนใหม่หมด คิดว่าไม่คล้าย C-Style แต่เท็จจริงเป็นอย่างไรไม่ทราบ