วันจันทร์ที่ 25 มิถุนายน พ.ศ. 2555

มาเล่น NFC กัน

Near Field Communication หรือ NFC เป็นการสื่อสารระยะใกล้ด้วยเทคโนโลยีสัญญาญไร้สาย ซึ่งทำให้สามารถแลกเปลี่ยนข้อมูลระหว่างอุปกรณ์ได้ สำหรับโทรศัพท์มือถือที่มีเทคโนโลยี NFC ติดมาด้วยได้แก่ Nokia, Samsung Galaxy Nexus และ Samsung Galaxy SIII เป็นต้น



เกริ่นนำมาขนาดนี้ มาลองกันเลยดีกว่าครับ เครื่องมือและอุปกรณ์ที่เราสามารถนำมาลองได้ มีดังนี้




  1. NFC Tag

  2. มือถือที่สามารถใช้ NFC ได้

  3. โปรแกรมอ่าน NFC Tag Info

  4. โปรแกรมเขียน NFC TagWriter



สำหรับผม NFC Tag ที่ใกล้ตัวที่สุดคือเจ้านี่ครับ บัตรกระต่าย





มาลองใช้ NFC Tag Info อ่านกันครับ ได้ผลลัพท์แบบนี้









จากที่ทำการทดสอบพบว่า โปรแกรมหา Data Set Storage ไม่เจอแต่ทราบขนาด Storage คือ 4094 byte ซึ่งแปลกดีครับ ถ้าใครมี NFC Tag ก็หามาลองดูได้สำหรับตัวถัดมาคือ NFC TagWriter ไม่รู้ว่าจะทดสอบให้ดูยังไง ถ้าใครมี NFC Tag ก็เอา Tag มาแนบไว้หลังเครื่อง แล้วเลือกข้อมูลที่ต้องการเขียนลง Tag ได้เลย สำหรับบัตรกระต่ายที่ผมทดลองดู พบว่าโปรแกรมแนะนำให้ Format Storage ซะงั้น T_T





เขียน Mobile App บน Android เริ่มยังไง

มีคนถามคำถามผมว่า เขียน Mobile App บน Android เริ่มยังไง? ตอบไม่ถูกเลยครับ คำตอบที่ง่ายที่สุดและรวดเร็วที่สุดคือ อ่านจากเว็บไซต์ครับ สำหรับเว็บไซต์ที่ผมจะมาแนะนำสำหรับผู้ที่อยากเริ่มต้นเขียน Android App ให้ดูเว็บนี้ก่อนเลยครับ



Android Developer





เว็บนี้จะรวบรวมข้อมูลที่ทุกคนควรรู้เกี่ยวกับ Android ทั้ง Source Code ของ Android การพัฒนาซอฟต์แวร์ รวมไปถึงเครื่องไม้เครื่องมือต่างๆ ที่ต้องใช้ และที่ขาดไม่ได้คือ Tutorial และ SDK Decument ที่ต้องใช้อ้างอิงครับ



Vogella Android Development Tutorial





เว็บนี้จะรวบรวม Tutorial สอนการเขียน Android App ที่แบ่งหมวดหมู่ได้อย่างชัดเจน เข้าใจได้ง่าย



ทุกๆเรื่อง ที่เกี่ยวกับ android โดย มาสเตอร์ อึ่ง





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



สำหรับหนังสือภาษาไทยที่สามารถซื้อหาได้ตามร้านขายหนังสือได้แก่
* Basic Android App Development เขียนโดย อ.จักรชัย โสอินทร์
* Android Developer's Cook Book : รวมโค้ด Android App เขียนโดย James Steele, Nelson To แปลโดย ไพบูลย์ สวัสดิ์ปัญญาโชติ



ลองไปซื้อหามาอ่านกันได้ครับ :)


วันพฤหัสบดีที่ 14 มิถุนายน พ.ศ. 2555

ตั้งค่า IPv6 ให้กับ Apache

หากต้องการใช้ IPv6 Apache เป็นอีกหนึ่งบริการที่เราต้องไปตั้งค่าให้ถูกต้อง สำหรับค่า config ที่เกี่ยวข้องกับ IPv6 มีดังนี้




  • Listen

  • VirtualHost



มาดูวิธีการกันครับ ค่า Listen จะเป็นการกำหนดว่าเราจะให้ Apache Listen จาก IP Address อะไร port อะไร เช่น Listen 0.0.0.0:80 หรือ Listen 80 ก็คือ Listen IP Address อะไรก็ได้ port ที่ใช้คือ 80 แต่ถ้าต้องการตั้งค่าสำหรับ IPv6 ต้องตั้งค่าอย่างนี้ครับ



Listen [::]:80
Listen 0.0.0.0:80



สำหรับในส่วน VirtualHost ก็ง่ายๆ ใส่ IPAddres ลงใน [] เท่านี้ก็เรียบร้อย



<VirtualHost [2001:db8::a00:20ff:fea7:ccea]>
ServerAdmin webmaster@host.example.com
DocumentRoot /www/docs/host.example.com
ServerName host.example.com
ErrorLog logs/host.example.com-error_log
TransferLog logs/host.example.com-access_log
</VirtualHost>


วิธีการเข้าเว็บไซต์โดยใช้ IPv6

นอกจากจะจำเลข IP กันไม่ได้แล้ว หากต้องการ browse เว็บไซต์ด้วย IPv6 จะทำยังไง โอ้ววววว ปวดสมอง เนื่องจาก IPv6 รูปแบบของ IP Address มีเครื่องหมาย : คั่นอยู่ทำให้ browser เข้าใจผิดว่าค่าหลังจาก : นั้นคือ port ก็มีคนคิดวิธีการแก้ปัญหาเหล่านี้มาแล้วครับ อ้างอิงจาก STD66 (RFC3986 - 3.2.2) และ RFC2732 เขาบอกว่า




  1. Literal IPv6 Address Format in URL's Syntax



    To use a literal IPv6 address in a URL, the literal address should be
    enclosed in "[" and "]" characters. For example the following
    literal IPv6 addresses:



    FEDC:BA98:7654:3210:FEDC:BA98:7654:3210
    1080:0:0:0:8:800:200C:4171
    3ffe:2a00:100:7031::1
    1080::8:800:200C:417A
    ::192.9.5.5
    ::FFFF:129.144.52.38
    2010:836B:4179::836B:4179



    would be represented as in the following example URLs:



    http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html
    http://[1080:0:0:0:8:800:200C:417A]/index.html
    http://[3ffe:2a00:100:7031::1]
    http://[1080::8:800:200C:417A]/foo
    http://[::192.9.5.5]/ipng
    http://[::FFFF:129.144.52.38]:80/index.html
    http://[2010:836B:4179::836B:4179]




พอเข้าใจมั๊ยครับ นั่นก็คือถ้าจะ browse เว็บโดยใช้ web browser ก็ใช้เครื่องหมาย [ ] คร่อมระหว่าง IP Address ที่เราจะใช้ ถ้าต้องการระบุ port ก็ใส่เครื่องหมาย : ต่อเข้าไปอีกแล้วตามด้วยหมายเลข port ที่เหลือเหมือนเดิมครับ :)


ตั้งค่า Network สำหรับ IPv6 บน Debian และ Ubuntu

ค้างเรื่อง IPv6 ไว้เมื่อครั้งที่แล้ว ว่าจะเขียน How-to เกี่ยวกับ IPv6 ที่เราจะต้องเรียนรู้กันใหม่อีกนิดหน่อย เริ่มต้นจากการตั้งค่า Network กันก่อน วิธีการเพิ่ม IPv6 ลงใน /etc/network/interfaces ก็ง่ายมาก เหมือนเราเพิ่มลงใน IPv4 นั่นแหละครับ ถ้ามี IPv4 ตั้งค่าอยู่ แค่เอาไปต่อท้ายเท่านั้นก็เรียบร้อยแล้ว เล่น



#IPV6 configuration
iface eth0 inet6 static
pre-up modprobe ipv6
address 2607:f0d0:2001:0000:0000:0000:0000:0010
netmask 64
gateway 2607:f0d0:2001:0000:0000:0000:0000:0001



อธิบายกันหน่อย รายบรรทัดนะครับ




  1. iface eth0 inet6 static ก็คือ ข้าพเจ้าจะใช้ IPv6 ที่ interface eth0 แบบ static คือกำหนด IP Address เอง (ทางการไปมั๊ย)

  2. บอกระบบให้ load module IPv6 มาด้วย (ถ้าแน่ใจว่า load module IPv6 มาแล้วบรรทัดนี้ไม่ต้องมีก็ได้)

  3. ค่า IP Address ของเราที่ได้มา

  4. ค่า netmask สำหรับ IPv6 subnet

  5. ค่า gateway ของ IPv6 subnet



เมื่อตั้งค่าให้สั่ง restart network service ดังนี้



/etc/init.d/networking restart



วิธีการทดสอบ ก็ง่ายมากใช้คำสั่ง ip ดังนี้



ip -6 address show eth0



วิธีดูค่า default gateway ใช้คำสั่ง



ip -6 route show dev eth0



ต้องการกำหนดค่า default gateway ใช้คำสั่ง



ip -6 route add default via 2607:f0d0:2001::1


วันพุธที่ 13 มิถุนายน พ.ศ. 2555

เขียน Mobile Application ด้วย Illumination Software Creator

Illumination Software Creator เป็นโปรแกรมสำหรับสร้าง prototype application โดยไม่ต้องเขียนโค้ด การทำงานของโปรแกรมใช้การกำหนด properties บล็อกของฟังก์ชั่นต่างๆ ใช้เส้นเชื่อมโยงบล็อกต่างๆ เข้าด้วยกัน ทำให้คุณไม่ต้องเขียนโค้ดเพียงแค่กำหนดค่าให้ถูกต้องเท่านั้น Illumination Software Creator สามารถสร้าง Application สำหรับ Mobile อย่าง Android, iOS, Maemo นอกจากนี้ยังสามารถสร้าง Application อย่าง Python/GTK Desktop และรวมไปถึง Application บนเว็บไซต์อย่าง HTML5 และ Flash ได้อีกด้วย





สำหรับท่านที่สนใจสามารถหาข้อมูลเพิ่มเติมได้ที่เว็บโครงการ Landuke


วันอังคารที่ 12 มิถุนายน พ.ศ. 2555

Facebook ออก plug-in สำหรับ WordPress

Facebook เปิดตัว plug-in ตัวใหม่สำหรับ WordPress ทำให้ผู้ใช้สามารถแชร์ข้อมูลผ่าน Social Network ได้ง่ายมากขึ้น plugin นี้พัฒนาโดย Facebook ร่วมกับนักพัฒนาโอเพนซอร์ส และที่เหมือนกับ WordPress ทั่วๆ ไปคือติดตั้งง่ายมากๆ ตัว plugin ช่วยให้คุณแชร์เนื้อหาใน WordPress ไปยัง Facebook ของคุณได้ง่ายมากขึ้น นอกจากนี้ยังมีเครื่องมือที่เป็น widget ให้คุณได้ใช้งานอีกมากมายไม่ว่าจะเป็น comment, like, send และ subscribe สำหรับ plug-in facebook สามารถดูข้อมูลเพิ่มเติมและดาวน์โหลดได้ที่ Wordpress




เพิ่มความเร็วให้เว็บไซต์ด้วย PageSpeed Insights

บังเอิญไปเจอเครื่องมือที่ช่วยให้คุณวิเคราะห์ประสิทธิภาพของเว็บไซต์ พร้อมแนะนำวิธีการปรับปรุงให้ประสิทธิภาพดีขึ้น เครื่องมือนี้เรียกใช้ง่ายๆ ผ่าน Chrome Browser ครับ โครงการ PageSpeed Insights เป็นโครงการพัฒนา extension เพื่อวิเคราะประสิทธิภาพของเว็บไซต์และช่วยแนะนำวิธีการทำให้ประสิทธิภาพของเว็บไซต์ดีขึ้น ล่าสุด PageSpeed Insights ออกรุ่นที่ 2 เรียบร้อยแล้ว สามารถดาวน์โหลดได้ที่ Chrome Web Store อยากรู้ว่าเว็บคุณช้าเพราะอะไร ดาวน์โหลดมาวิเคราะห์กันได้ครับ




วันอาทิตย์ที่ 10 มิถุนายน พ.ศ. 2555

อัพเดท Android 4.0.4 ให้ Galaxy Nexus

บังเอิญมีเรื่องหงุดหงิดเกี่ยวกับการเขียน App บน Galaxy Nexus เพราะเครื่องที่ซื้อมาใช้ ICS 4.0.2 รออัพเดทจาก OTA เป็น 4.0.3 เพื่อใช้ SDK รุ่น 15 รอนานมาก รอนานจนเบื่อเลยตัดสินใจอัพเดทเอง ซึ่งวิธีการก็ง่ายมากครับ อันดับแรกต้องมีเครื่องมือกันก่อน ได้แก่




  1. Java SDK

  2. Android SDK

  3. USB Driver



ผมใช้ Linux อยู่แล้วและพัฒนาโปรแกรมบนมือถืออยู่แล้วทำให้เรื่องพวกนี้ง่ายมากๆ เพราะจำเป็นต้องใช้ครับ ทีนี้หา Factory Image จาก Google ครับ Factory Image ที่ใช้คือ yakju for Galaxy Nexus "maguro" (GSM/HSPA+) ดาวน์โหลดมาให้เรียบร้อยแล้วแตกไฟล์ครับ ถ้าติดตั้ง Android SDK แล้วให้ตั้ง PATH ไปที่ platform-tools จะได้เรียกโปรแกรมได้ง่ายขึ้น การอัพเดท ROM ใหม่โดยไม่ผ่าน OTA จะต้องแก้ไข bootloader โดยทำการ unlock ซึ่งเมื่อ unlock bootloader แล้วข้อมูลจะหายนะจ๊ะ ควรสำรองข้อมูลก่อนทำ อ้ออย่าลืมตั้ง usb debug mode และเสียบสาย USB ด้วยละ มีของครบแล้วก็มาลงมือกัน



Unlock boot loader ก่อน ด้วยคำสั่ง



adb reboot bootloader



เครื่องจะ reboot และแสดงหน้าจอตัวหุ่น Android นอนเปิดท้องอยู่ ใช้คำสั่ง unblock bootloader ดังนี้



fastboot oem unlock



สังเกตข้อความข้างล่างจะเปลี่ยนจาก locked เป็น unlocked ครับ ทีนี้ก็เตรียม flash ROM ใหม่ เมื่อเราแตกไฟล์ zip ออกมาแล้วเราจะได้ไดเรคทอรี yakju-imm76i ให้ cd เข้าไปที่ไดเรคทอรีนี้แล้วใช้คำสั่ง



./flash-all.sh



โปรแกรมก็จะ flash bootloader, radio, boot.img, system.img ฯลฯ จนเครื่อง reboot กลับมาที่หน้าจอ logo ตอนเปิดเครื่อง หากสังเกตดีๆ จะมีเครื่องหมายแม่กุญแจอยู่ข้างล่าง (ปกติไม่มี) ไม่ต้องตกใจ รอสัก 5 วินาทีเครื่องจะ boot เข้าหน้าจอ lock screen ตามปกติ เท่านี้ก็ได้ Android ICS 4.0.4 ใช้แล้ว :) อ้อถ้ารำคาญ เครื่องหมายแม่กุญแจอยู่ข้างล่าง เวลา boot เครื่องใหม่ ก็สั่ง lock bootloader ดังนี้



adb reboot bootloader
fastboot oem lock


วันพฤหัสบดีที่ 7 มิถุนายน พ.ศ. 2555

เก็บตกฉลอง World IPv6 Launch

เก็บตกเรื่อง Internet Protocal version 6 หรือ IPv6 กันหน่อย หลังจากผ่านมาได้ 2 วัน ซึ่งเป็นวันประกาศใช้ IPv6 ทั้งโลกไปเมื่อวันที่ 6 มิถุนายน 2555 ที่ผ่านมา เว็บไซต์ Thai Open Source ก็ได้ร่วมฉลอง IPv6 กับชาวโลกด้วยเช่นกัน ซึ่งเราได้ IPv6 เป็นที่เรียบร้อยแล้ว สามารถทดสอบดูได้ครับ สำหรับการเปลี่ยนไปเป็น IPv6 นั้นมีหลายอย่างที่เราต้องทำความเข้าใจกันใหม่ทั้งในเรื่องเครื่องมือที่เราต้องใช้ร่วมกับ IPv6 เช่น DNS, DHCP, ICMP, Web Server เป็นต้น



สำหรับอาทิตย์นี้เราจะมาเล่นกับ IPv6 กันให้มากขึ้น ทั้งในเรื่องการคอนฟิกระบบปฏบัติการให้ทำงานร่วมกับ IPv6 การตั้งค่า DHCPv6 การตั้งค่า Domain Name Server ตลอดจนการตั้งค่า Web Server ให้ทำ
านร่วมกับ IPv6 ได้ คุณสามารถติดตามบทความเหล่านี้ได้ทางเว็บไซต์ Thai Open Source ในหมวดบทความและสอนการใช้งานครับ