ทบทวนที่เรียนจากติว PhoneGap ด้วย HTML5 & Jquery Mobile

ผมต้องออกตัวก่อนนะครับว่า ไม่ได้เก่งในการเขียน Mobile Apps. เลยสักนิด เพียงแต่ได้ไปเข้าเรียนมา 2 วัน ผมรู้สึกว่าเป็นศาสตร์ที่น่าลองทำดู และไม่ควรให้มันจางหายไปหลังจากเรียน เดี๋ยววิทยากรจะเสียใจ อิๆ ผมจึงบันทีกไว้แบบใครอ่านแล้วไม่ชอบก็อย่าถือสาผมนะครับ ลองทบทวนจากที่เรียนใน workshop ติว “แนะนำและสอนการพัฒนาเบื้องต้นเกี่ยวกับ Application บนมือถือด้วย PhoneGap โดยใช้ HTML5 & Jquery Mobile” สภาพแวดล้อม – เป็นการติดตั้งทดสอบบน Windows 8 (32 bit) บนเครื่องโน้ตบุ๊ค HP ProBook 6450b RAM 4 GB 1. download JRE http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 32bit ได้ไฟล์สำหรับติดตั้ง jdk-7u25-windows-i586.exe (64bit ได้ไฟล์สำหรับติดตั้ง jdk-7u25-windows-x64.exe) รันไฟล์ดังกล่าวเพื่อติดตั้งลงในวินโดวส์ 2. download ADT http://developer.android.com/sdk/index.html 32bit ได้ไฟล์ที่ zip ไว้คือ adt-bundle-windows-x86-20130729.zip (64bit ได้ไฟล์ที่ zip ไว้คือ adt-bundle-windows-x86_64-20130717.zip) แตกไฟล์ดังกล่าวออกมาแล้ว 32bit ได้ไดเรกทอรี adt-bundle-windows-x86-20130729 ไว้ที่ C:\ (64bit ได้ไดเรกทอรี adt-bundle-windows-x86_64-20130717 ไว้ที่ C:\) สร้าง shortcut ไปยังไฟล์ชื่อ eclipse.exe ในไดเรกทอรี eclipse ไว้บน Desktop ทดสอบรันโปรแกรม eclipse ตั้งชื่อ workspace ไว้ที่ C:\phonegap 3. สร้าง Andriod Device ในโปรแกรม Java – ADT เมนู Windows > Android Virtual Device Manager แท็บ Android Virtual Devices คลิก New… ADV Name: ตั้งชื่อ ADV-7-inch Device: เลือก Nexus 7 Target: เลือก Android 4.3 – API Level 18 (adt-bundle-windows-x86-20130729.zip จะได้ Android 4.3 – API Level 18) Front Camera: None RAM: 768 ทดสอบเปิด ADV-7-inch คลิก Start แล้วรอ ค่อนข้างนาน 4. สร้าง New Android Application File > New > New Android Application ตั้งชื่อว่า phonegappsu ที่เหลือใช้ค่า default หน้าต่อไป Create Project in Workspace ตั้ง Location เป็นชื่อ C:\phonegap\phonegappsu หน้าต่อไป ใช้ค่า default หน้าต่อไป ใช้ค่า Blank Activity หน้าต่อไป ใช้ค่า default (Activity Name: MainActivity) คลิก Finish แล้วจะได้หน้าต่างของรายละเอียดเยอะแยะ 5. download phonegap http://phonegap.com/install/ เลือก PhoneGap2.9.0 ได้ไฟล์ที่ zip ไว้คือ phonegap-2.9.0.zip แตกไฟล์ดังกล่าวออกมาแล้ว ได้ไดเรกทอรี phonegap-2.9.0 6.

Read More »

แนวทางการพัฒนาเว็บแบบ Responsive Web Design

            เนื่องด้วยปัจจุบันความก้าวหน้าทางเทคโนโลยีและการให้บริการอินเตอร์เน็ตความเร็วสูงมีการพัฒนาอย่างต่อเนื่อง จึงส่งผลให้การเข้าถึงข้อมูลข่าวสารเป็นไปได้อย่างรวดเร็วและทั่วถึง ทำให้เหล่าผู้ผลิตรวมถึงนักพัฒนา พร้อมใจกันพัฒนาซอร์ฟแวร์และอุปกรณ์ต่างๆ ให้สามารถใช้งานอินเตอร์เน็ตได้ ไม่ว่าจะเป็นโทรศัพท์ Tablet หรือแม้แต่โทรทัศน์เองก็สามารถใช้งานอินเตอร์เน็ตได้เช่นกัน นั่นหมายความว่าปัจจุบันมีอุปกรณ์มากมายที่สามารถใช้งานอินเตอร์เน็ต ซึ่งมีคุณสมบัติที่แตกต่างกันออกไป เช่น ความกว้าง ความสูง ความละเอียดหน้าจอ และอื่นๆ อีกมากมาย            เมื่อพูดถึงการออกแบบเว็บไซต์เพื่อให้สามารถรองรับการใช้งานกับทุกอุปกรณ์ คนส่วนใหญ่มักมองว่าจำเป็นต้องใช้ต้นทุนในการผลิตที่สูงขึ้น เพื่อใช้ในการออกแบบเว็บไซต์แต่ละเวอร์ชั่นให้รองรับกับการใช้ของอุปกรณ์ที่ มีความลหากหลายได้ ซึ่งความจริงแล้วนั่นอาจเป็นแนวคิดที่ไม่ถูกต้องนัก เพราะ Responsive Web Design คือเทคโนโลยีการออกแบบเว็บไซต์ที่ช่วยให้คุณสามารถสร้างเว็บไซต์ที่รองรับทุกขนาดหน้าจอรวมถึงทุกอุปกรณ์สื่อสารด้วยต้นทุนที่ต่ำกว่า เวลาที่สั้นกว่า และประสิทธิภาพที่สูงกว่าการผลิตเว็บไซต์แยกหลายเวอร์ชั่น โดยในบทความนี้จะพูดถึงแนวคิดและแนวทางการพัฒนา Responsive Web Design แบบเบื้องต้นที่ผู้เขียนได้อ่านและรวบรวมมาให้ผู้ที่สนใจนำไปใช้ประโยชน์ได้ไม่มากก็น้อย Flexible Images ปัญหาที่เกิดขึ้นบ่อยในการออกแบบเว็บไซต์แบบ Responsive Web คือ ปัญหาเกี่ยวกับการแสดงผลรูปภาพบนอุปกรณ์ที่มีขนาดแตกต่างกัน ซึ่งปัจุบันมีเทคนิคมากมายที่ช่วยในการจัดการปัญหาดังกล่าว โดยเทคนิคที่ได้รับความนิยมมากคือนำ CSS มาช่วยในการออกแบบการแสดงผลดังกล่าวเนื่องจากสามารถทำได้ง่าย และไม่ซับซ้อน ดังนี้ img { max-width: 100%; } จากตัวอย่างข้างต้น เป็นการกำหนดขนาดของรูปภาพให้มีความกว้าง 100% แทนการกำหนดขนาดของรูปภาพแบบตายตัว (width: 100px) ทำให้การแสดงผลของรูปภาพจะขึ้นอยู่กับขนาดของหน้าจออุปกรณ์หรือความกว้างของบราวเซอร์แทน ข้อเสีย –         บราวเซอร์ Internet Explorer ยังไม่รองรับ properties ที่ชื่อว่า max-width  แต่สามารถแก้ไขโดยการใช้ properties ที่ชื่อว่า width แทน –          ในบราวเซอร์เวอร์ชั่นเก่าๆ ยังไม่รองรับเทคนิคการทำงานดังกล่าวเช่นกัน ซึ่งสามารถแก้ไขโดยการใช้ JavaScript ช่วยในการทำงานแทนได้ แม้วิธีข้างต้นจะเป็นการแก้ปัญหาการยืดหยุ่นของภาพได้ดีและรวดเร็ว แต่สิ่งที่ไม่ควรมองข้ามคือ ความละเอียดของภาพและเวลาในการโหลดรูปภาพ เนื่องจากในปัจจุบัน นิยมใช้งานเว็บไซต์ผ่านทาง Smartphone หรือ Tablet มากขึ้น การโหลดภาพที่มีขนาดใหญ่และความละเอียดสูงจะทำให้เสียเวลาและใช้พื้นที่โดยไม่จำเป็น Filament Group’s Responsive Images เป็นเทคนิค ที่ไม่เน้นการปรับขนาดของรูปภาพ แต่ใช้วิธีเลือกรูปภาพที่มีขนาดเหมาะสมกับอุปกรณ์มาแสดงแทน ซึ่งช่วยแก้ปัญหาการโหลดรูปภาพที่มีขนาดใหญ่มาแสดงผลในอุปกรณ์ที่มีขนาดเล็ก และลดการใช้พื้นที่โดยไม่จำเป็นได้ โดยการทำงานด้วยเทคนิคดังกล่าวจำเป็นที่จะต้องใช้ไฟล์บางตัว ซึ่งสามารถโหลดได้จาก Github ซึ่งมีขั้นตอนดังนี้ 1) โหลดไฟล์ที่จำเป็นตอนใช้งาน ซึ่งได้แก่  JavaScript, ไฟล์ .htaccess และไฟล์รูปภาพทั้งขนาดเล็กและขนาดใหญ่ 2) ทำการกำหนดคุณสมบติของรูปภาพให้อ้างอิงไปยังไฟล์รูปภาพนั้นๆทั้งขนาดเล็กและขนาดใหญ่ โดยวิธีการอ้างอิงของรูปภาพขนาดเล็กจะต้องอ้างอิงผ่าน attribute  SRC และรูปภาพขนาดใหญ่จะอ้างอิงผ่าน attribute data-fullsrc <img src=”smallRes.jpg” data-fullsrc=”largeRes.jpg”> ซึ่งแท็ก data-fullsrc เป็นแท็กที่เพิ่มเข้ามาใน HTML5 เพื่อใช้ในการโหลดรูปภาพกรณีที่หน้าจอมีความกว้างเกิน 480 pixels จากตัวอย่าง กรณีที่เปิดบนอุปกรณ์ที่มีขนาดความกว้างไม่เกิน 480 จะทำการโหลดภาพ smallRes.jpg ขึ้นมาแสดง แต่ในกรณีที่หน้าจอกว้างเกิน 480 จะทำการโหลดภาพ largeRes.jpg ขึ้นมาแสดง ตัวอย่าง Stop iPhone Simulator Image Resizing ปัจจุบันอุปกรณ์ของค่าย Apple ไม่ว่าจะเป็น IPhone(เวอร์ชั่น 4 ขึ้นไป) หรือ IPad(เวอร์ชั่น 2 ขึ้นไป) ได้นำเทคโนโลยีที่ช่วยในการแสดงผลของหน้าจอได้ดีขึ้นซึ่งมีชื่อเรียกว่า Retina Display ทำให้การแสดงผลของ Responsive Web บนอุปกรณ์ดังกล่าวไม่ได้ขนาดที่เหมาะสมกับที่ได้ทำการออกแบบไว้ ซึ่งมีเทคนิคในการแก้ไขปัญหาดังกล่าวโดยการนำค่า pixels มาเป็นตัวช่วยในการแก้ปัญหา ซึ่งจะขอธิบายในส่วนของเรื่อง pixels ให้ผู้อ่านได้เข้าใจก่อน pixels คือหน่วยที่ใช้วัดค่าความละเอียดของรูปภาพหรือหน้าจออุปกรณ์  pixels แบ่งได้  3 แบบด้วยกัน คือ Physical Pixels, CSS Pixels และ Device Pixels Physical Pixels คือ จำนวน pixels จริงๆ ตาม spec ของ Device นั้นๆ  เช่น iPhone3 เท่ากับ 320×480 ส่วน iPhone4 เท่ากับ 640×960

Read More »

How to install apache,php,mysql instead xampp on ubuntu (for newbie)

แรกเริ่มเดินทีวันนี้ก็ไม่ได้จะเขียน Post นี้หรอกครับ เพียงแต่ว่ามี บุคลากรในที่ทำงานเจอปัญหาในการติดตั้งโปรแกรม ห้องสมุด ULIB  โดยใช้ Ubuntu 12.04.1 LTS  เป็น server แล้วติดตั้ง xampp เพื่อให้ได้ครบทุก package ในการใช้งาน แต่ไม่สามารถทำการติดตั้งโปรแกรม ULIB ได้เนื่องจากโปรแกรมฟ้องเรื่อง permission  ในการติดตั้งโปรแกรมดังข้างล่าง   มีปัญหาเกี่ยวกับการเปลี่ยนโหมดไฟล์/File permission problem – ไม่อนุญาตให้ติดตั้ง [../inc/config.inc.sv.php] Notice: Undefined variable: dcrs in /opt/lampp/htdocs/ULIB/install/index.php on line 239 มีปัญหาเกี่ยวกับการเปลี่ยนโหมดไฟล์/File permission problem – ไม่อนุญาตให้ติดตั้ง [../inc/config.inc.php] Notice: Undefined variable: dcrs in /opt/lampp/htdocs/ULIB/install/index.php on line 239 มีปัญหาเกี่ยวกับการเปลี่ยนโหมดไฟล์/File permission problem – ไม่อนุญาตให้ติดตั้ง [../inc/c.inc.php] Notice: Undefined variable: dcrs in /opt/lampp/htdocs/ULIB/install/index.php on line 239 มีปัญหาเกี่ยวกับการเปลี่ยนโหมดไฟล์/File permission problem – ไม่อนุญาตให้ติดตั้ง [../webboard/c.inc.php] Notice: Undefined variable: dcrs in /opt/lampp/htdocs/ULIB/install/index.php on line 239 มีปัญหาเกี่ยวกับการเปลี่ยนโหมดไฟล์/File permission problem – ไม่อนุญาตให้ติดตั้ง [../web/c.inc.php] Notice: Undefined variable: dcrs in /opt/lampp/htdocs/ULIB/install/index.php on line 239 หากคุณเป็นผู้ดูแลระบบเซิร์ฟเวอร์บนระบบปฏิบัติการ Linux/If you are server administrator (Linux) Execute in command line chown apache:apache ‘/opt/lampp/htdocs/ULIB/inc/config.inc.sv.php’ ; chown apache:apache ‘/opt/lampp/htdocs/ULIB/inc/config.inc.php’ ; chown apache:apache ‘/opt/lampp/htdocs/ULIB/inc/c.inc.php’ ; chown apache:apache ‘/opt/lampp/htdocs/ULIB/webboard/c.inc.php’ ; chown apache:apache ‘/opt/lampp/htdocs/ULIB/web/c.inc.php’ ; * apache:apache คือชื่อ User และ Group ของโปรแกรม Apache หากเซิร์ฟเวอร์ของคุณมีการปรับแต่งเป็นอย่างอื่น ก็ต้องแก้ apache:apache ตามด้วย   ผมจึงลองเปลี่ยน user และ group เป็น www-data:www-data  แล้วแต่มันก็ยังไม่สามารถติดตั้งระบบได้อยู่ดี จึงลองลบ xampp ออกจากเครื่องเลย วิธีการลบตอนแรกก็งงๆเหมือนกัน เพราะผมดันไปใช้คำสั่ง apt-get install opt  และก็ dpkg -P opt  ซึ่งมันก็ไม่สามารถลบได้ เพราะเหมือนว่าไอ่เจ้าถูก opt มองเห็นเป็นเพียง directory หนึ่งเท่านั้น ดังนั้นวิธีการลบจึงแค่ใช้คำสั่ง rm -rf /opt แทน ครับ [1] จากนั้นเมื่อลบแล้วจึงลองติดตั้งแบบแยกทีบะตัวดูครับโดยเริ่มจาก 1.ติดตั้ง MySQL  ก่อนเป็นอันดับแรกเลยก็ได้ครับโดยใช้คำสั่ง   sudo  apt-get install mysql-server mysql-client   ระบบจะให้เราใส่รหัสผ่านของ root และก็ยืนยันอีกครั้ง [2] 2.ติดตั้ง apache2  โดยใช้คำสั่ง    sudo    apt-get install apache2 apache2-doc      [3] 3.ติดตั้ง php  โดยคำสั่ง                  sudo  apt-get install php5 libapache2-mod-php5    โดยตอนที่ระบบมันถามว่าจะเลือก

Read More »

วิธีเอา index.php ของ Codeigniter ออกไป (Ubuntu/Linux Mint)

1.สร้างไฟล์ .htaccess ในโปรเจกของท่าน ดำเนินใส่โค๊ดดังนี้ (สมมุติว่าเป็น /var/www/ci/) RewriteEngine on RewriteBase /ci/ RewriteCond $1 !^(index\.php|assets|uploads|robots\.txt) RewriteRule ^(.*)$ index.php/$1 [L]   2.เปิด  terminal และพิมพ์คำสั่ง เพื่อเปิด mod_rewrite sudo a2enmod rewrite   3.เพิ่ม virtual host ใน /etc/apache2/sites-available/default sudo gedit /etc/apache2/sites-available/default   4.เพิ่มโค้ดดังนี้ <Directory /var/www/ci> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory>   5. Restart Apache sudo /etc/init.d/apache2 restart   6.ไปที่โปรเจก codeigniter แก้ไขไฟล์  application/config/config.php เอา index.php ออก จาก $config[‘index_page’] = ‘index.php’; เป็น $config[‘index_page’] = ”;

Read More »