วันศุกร์ที่ 14 กุมภาพันธ์ พ.ศ. 2557

facebook programming

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

มีหลายเทคนิคด้วยกันครับ เทคนิคแรกเป็นการดึงข้อมูลเองโดยตรงผ่าน graph ของ facebook
http://kevinp93.com/facebook-images-on-website-v2/

วิธีที่สองก็คือการดึงข้อมูลผ่าน FQL ซึ่งเป็นเป็น api ของ facebook
http://www.codeofaninja.com/2011/06/display-facebook-photos-to-your-website.html
http://www.codeofaninja.com/p/facebook-developers.html
http://www.codeofaninja.com/2013/02/facebook-appId-and-appSecret.html

วันเสาร์ที่ 11 มกราคม พ.ศ. 2557

ควบคุมแคลอรี่เพื่อการลดน้ำหนักด้วยแอพแคลอรี่ไดอารี่ Calorie Diary App

การควบคุมปริมาณแคลอรี่ให้อยู่ในปริมาณที่เหมาะสมจะช่วยลดน้ำหนักและควบคุมน้ำหนักไม่ให้เพิ่มขึ้นได้ แอพแคลอรี่ไดอารี่ตัวนี้จะช่วยบันทึกประมาณแคลอรี่ที่คุณรับประทานในแต่ละวันเก็บไว้เป็นสถิติเพื่อช่วยในการตัดสินใจว่าเพิ่มหรือลดแคลอรี่ที่จะรับประทานเข้าไปในแต่ละวันให้มีปริมาณที่เหมาะสมครับ

Controlling the amount of calories in the right amount to help lose weight and keep weight. The Calorie Diary will help you note calories amount you consume each day, keep the statistics to help decide whether to raise or lower the calories to eat each day.


คุณสมบัติของแคลอรี่ไดอารี่ (Calorie Diary)

- ไดอารี่สำหรับจดบันทึกสถิติแคลอรี่ที่คุณได้รับจากการรับประทานอาหารในแต่ละวัน
- การจดบันทึกและควบคุมปริมาณแคลอรี่ที่ร่างกายจะได้รับในแต่ละวันจะช่วยในการควบคุมและลดน้ำหนัก
- แสดงรายการข้อมูลในรูปแบบปฎิทินทำให้แก้ไขเพิ่มเติมข้อมูลได้ง่ายดาย
- สามารถค้นหาข้อมูลชื่ออาหารและค่ากิโลแคลอรี่ของอาหารประเภทต่างๆ นับพันรายการ
- สามารถเพิ่มรายชื่อผู้ใช้ได้หลายคนเพื่อจดสถิติให้กับเพื่อนๆ หรือคนในครอบครัว
- นอกจากนี้คุณยังสามารถเพิ่มชื่ออาหารและค่ากิโลแคลอรี่ของอาหารได้เองด้วย
- มีรายงานสถิติค่าเฉลี่ยแคลอรี่ที่คุณรับเข้าไปในแต่ละวันและค่าเฉลี่ยน้ำหนักที่ลดลงในแต่ละวัน


Feature
- Note Statistics calories you are eating each day.
- To record and control the amount of calories each day will help to control and loss weight.
- Display information in the calendar form make it easy to add/update data.
- Find out the name and the kilo calories of food types , thousands of items .
- Can add multiple users to take statistics with friends. Or someone in the family.
- You also can add your name and the kilo calories of the food itself.
- Have reported record , the average calories you intake each day and the average weight loss each day.


 

สิ่งที่เปลี่ยนแปลงในเวอร์ชั่น 1.4
- สามารถใช้ปุ่มย้อนกลับของ android ในการย้อนไปยังหน้าก่อนหน้า
- เพิ่มปุ่มให้คะแนนแอพนี้ และปุ่มแจ้งปัญหา
- ลบปุ่มส่งต่อให้เพื่อน (เนื่องจากไม่มีงบประมาณในการซื้อ social plugin)
- ลบปุ่มยกเลิก สำหรับการปิดเมนูป๊อปอัพจะเปลี่ยนมาใช้การกดที่หน้าจอแทน

สิ่งที่เปลี่ยนแปลงในเวอร์ชั่น 1.3
- ย้ายรายชื่อผู้ใช้ไปหน้าแรก
- เพิ่มป็อปอัพเมนูเพื่อให้บันทึกข้อมูลได้สะดวกขึ้น
- เพิ่มปุ่มส่งต่อให้เพื่อน

สิ่งที่เปลี่ยนแปลงในเวอร์ชั่น 1.2
- แก้ไขข้อผิดพลาดที่เกิดขึ้นในหน้าปฎิทินที่เกิดขึ้นเมื่อไม่ได้กำหนดค่าแคลอรี่ในบันทึกประจำวัน

สิ่งที่เปลี่ยนแปลงในเวอร์ชั่น 1.1
- แก้ปัญหาขนาดช่องป้อนข้อมูลเล็กเกินไปในหน้าบันทึกน้ำหนักและแคลอรี่
- เพิ่มการแสดงวันที่ปัจจุบันเป็นสีชมพูในปฎิทิน
- จัดรูปแบบหน้าแรกให้ปุ่มสำคัญอยู่ตรงกลางเพียงปุ่มเดียวเพื่อให้กดปุ่มสะดวกขึ้น

Change Log
What changed in version 1.4
- Can return to the previous page using android hardware back button.
- Add Rate This App Button and Feedback Button.
- Remove Share This App Button (Due to budget issues).

- Remove Cancel Button, Changed to close pop-up menu by pressing the screen.
What changed in version 1.3
- Move the user list to the first page.
- Added popup menu to save the data easier.
- Add Share to friends button.
What changed in version 1.2
- Fix error in the calendar page when not providing value to calorie on the day.
What changed in version 1.1
- Fixed the input size too small in weight and calories input page.
- Added display the current date in pink color in the calendar.
- Formatting the home menu buttons, display a single button will press easier.


คุณสามารถติดตั้งแอพแคลอรี่ไดอารี่ได้ทาง Google Play
You can install The Calorie Diary via


ถ้ามีปัญหาการใช้งานติดต่อมาได้ที่ dragon_html[แอด]hotmail.com ครับ

เทคนิคในการลดน้ำหนัก

1. ทานน้ำเปล่าหรือน้ำชาอ่อนๆ ให้มากขึ้น
2. ทานผักผลไม้ให้มากขึ้น
3. ทานนมและถั่วให้มากขึ้น
4. ทานอาหารในปริมาณน้อยๆ ทีละหลายครั้งดีกว่าทีละมากๆ ครั้งเดียว (ทานเท่าที่ร่างกายต้องการแทนทานเท่าที่ต้องการ)
5. ชั่งน้ำหนักด้วยกิโลที่มีความละเอียดอ่านได้ง่ายตัวอย่างเช่นเครื่องชั่งดิจิตอล
6. ตรวจสอบแคลอรี่ของอาหารที่รับประทานเข้าไปในแต่ละวันไม่ให้มากเกินไปครับ


Techniques to lose weight

1. Drink more water or light tea.
2. Eat more fruits and vegetables.
3. Eat more sugar free milk and nuts.
4. Eating foods in small amounts but multiple times better than eating food in big amounts at once
(Eat as much as the body needs, Not to eat as much as body wish).
5. Weighed with a scale that can check your weight accurately, for example, the digital scales.
6. Check the calorie of food consumed each day, not too much.


     

วันศุกร์ที่ 27 ธันวาคม พ.ศ. 2556

start end format display number


abstract class StartEnd{
    protected $m = array();
    public function push($data){
        if (count($this->m)==0){
           $this->m[1] = $this->m[0] = $data;
        }else{
           $this->m[1] = $data;
        }
    }
    public function __toString(){
        if (count($this->m)==0){
            return '';
        }elseif ($this->m[0] == $this->m[1]){
            return (string)$this->m[0];
        }else{
            return $this->m[0].'-'.$this->m[1];
        }
    }
    public static function getFormat(array $a){
        $groups = array();
        $prev = -1;
        static::sort($a);
        foreach($a as $i){
              if ($prev !== static::getPrev($i)){
                     $se = new static();
                     $groups[] = $se;
              }
              $se->push($prev = $i);
        }
        return implode(',',$groups);
    }
    abstract public static function sort(&$a);
    abstract public static function getPrev($i);
}
class StartEndNumber extends StartEnd{
    public static function sort(&$a){
        sort($a,SORT_NUMERIC);
    }
    public static function getPrev($i){
        return $i-1;
    }
}
class StartEndDay extends StartEnd{
    protected static $enum = array('MON','TUE','WED','THU','FRI','SAT','SUN');
    public static function daySort($val1,$val2){
        return array_search($val1,static::$enum)-array_search($val2,static::$enum);
    }
    public static function sort(&$a){
        usort($a,'StartEndDay::daySort');
    }
    public static function getPrev($i){
        $position = array_search($i,self::$enum);
        if ($position === false){
                return false;
        }else{
                return self::$enum[$position-1];
        }
    }
}


$a = array(1,4,3,2,5,9,10,12);
echo StartEndNumber::getFormat($a),' '; //1-5,9-10,12

$a = array('TUE','MON','WED','FRI','SAT');
echo StartEndDay::getFormat($a); //MON-WED,FRI-SAT

วันอาทิตย์ที่ 15 ธันวาคม พ.ศ. 2556

calculate age from javascript

function get_age(ymd) {  
    var x = ymd.split('-');
    var y = x[0];
    var m = x[1];
    var d = x[2];
    var today = new Date();
    var test = m = (today.getMonth()+1 - m);
    if (test < 0) {
        y++;
    } else if (m == 0 && today.getDate() - d < 0) {
        y++;
    }
    var test2 = today.getFullYear() - y;
    if (test2 < 0)
        test2 = 0;
    return test2;
}


alert(get_age('1980-01-01'));

วันเสาร์ที่ 7 ธันวาคม พ.ศ. 2556

mod_rewrite test tool

http://htaccess.madewithlove.be/

เครื่องมือทดสอบ mod_rewrite โดยไม่ต้องไปแก้ .htaccess บ่อยๆ ทดสอบออนไลน์ได้เลยครับ

วันจันทร์ที่ 2 ธันวาคม พ.ศ. 2556

Zend certified engineer PHP 5.3


My Zend Certified Engineer Directory Page


ในที่สุดก็สอบผ่านเสียทีครับ กับการเตรียมสอบมาอย่างยาวนาน ใช้เวลาเตรียมตัวสอบมาเรื่อยๆ อาศัยช่วงว่างจากงานพิเศษบ้าง ช่วงดึกของวันจันทร์ถึงศุกร์ เป็นเวลา 3 เดือนเต็มๆ หลักก็มีอ่าน ebook ของ PHP-5-3-Study-Guide-v1 ของ Zend.com, Tutorial ตามเว็บไซต์ต่างๆ ที่คนที่สอบผ่านแล้วแนะนำ และอ่าน PHP Manual เนื้อหาหลักๆ ทั้งหมด

ในระหว่างการอ่านพบว่าตัวเองไม่ถนัดเขียนปากกาจดบันทึกซะแล้ว สมัยก่อนจดแล้วลบแล้วบางทีกลับมาดูอีกทีอ่านไม่ออก ผมเลยต้องหาตัวช่วยมาใช้เป็นโปรแกรมสร้าง Mind Map ตัวหนึ่งชื่อว่า FreeMind โปรแกรมตัวนี้จะสร้างข้อมูลเหมือน Tree/Directory สามารถจัดกลุ่มเพิ่มลบแก้ไขข้อมูลได้สะดวกมาก http://freemind.sourceforge.net

ในช่วงวันก่อนวันสอบก็ยังไม่แน่ใจในระดับความยากของข้อสอบ เพราะจากที่ทำตัวอย่างข้อสอบที่ผ่านๆ มาอยู่ในระดับยากมาก (ข้อสอบตัวอย่างมักจะถาม parameter ตัวที่ 3-4 ของ function ต่างๆ แบบสุ่มชื่อ function หรือถามผลลัพธ์ของการของโปรแกรมที่มีตัวแปร 3-5 ตัวแปร) วันเสาร์อาทิตย์ก่อนสอบก็ไม่สบายเสียอีกเวลาอ่านทบทวนที่จดไว้ใน Mind Map ได้ไม่มาก จะสอบผ่านไม่ผ่านไม่รู้แต่เสียดายที่เตรียมมาเยอะมาก ถ้าอ่านไม่จบแล้วสอบตกคงเสียใจมาก ถ้าอ่านจบที่เตรียมแล้วไม่ผ่านก็จะได้ทำใจว่าทำดีที่สุดแล้ว วันจันทร์ตอนเช้าเลยต้องตั้งตาอ่านให้ครบตั้งแต่ช่วงตี 2 ถึง 7 โมงกว่า อ่านจบค่อยสบายใจหน่อย :D

วันที่สอบก็หวั่นๆ อยู่หน่อย เพราะเป็นช่วงที่เกิดการชุมนุมและมีการประกาศหยุดงานในหลายๆ แห่ง ไม่รู้ว่าศูนย์สอบจะเปิดให้ผมเข้าไปสอบหรือเปล่า ผมสอบที่ศูนย์ CTT Center เลือกสอบที่นี่เนื่องจากตั้งใจจะสอบช่วงธันวาคมแต่ศูนย์สอบหลายแห่งไม่เปิดช่วงธันวาคมแต่ที่นี่เปิดอยู่เกือบทั้งเดือน การเดินทางก็สะดวกโดยลงที่สถานีไฟฟ้าใต้ดินเพชรบุรี เดินต่อไปอีก 300 เมตรก็ถึงครับ ก่อนสอบก็ต้องเก็บของในล็อคเกอร์ก่อน เพราะเค้าจะไม่อนุญาตให้เอาของส่วนตัวกระเป๋า โทรศัพท์มือถือ ฯลฯ เข้าสอบครับ

การสอบจะเป็นการสอบในระบบ online ก็จะมีเจ้าหน้าที่มาเซ็ตระบบให้เรียบร้อย โดยเริ่มต้นเค้าจะให้กระดาษทดมา ปรากฎว่าปากกาเขียนไม่ติด ผมเลยตะโกนขอปากกาใหม่ ตอนหลังสอบเจ้าหน้าที่คงงง ว่าเขียนทดอะไรหว่า ด้วยลายมือที่อ่านยากและที่ทดเขียนไว้ว่า 1+1 (จะเขียนทำไมเนี่ย 555)

ข้อสอบไม่สามารถเปิดเผยได้เพราะเป็นกฎของ Zend ครับ แต่หลักๆ แล้วไม่ยากอย่างที่คิด ระบบข้อสอบเค้าเป็นระบบที่ดีมาก คือทำแล้วสามารถตั้ง flag เพื่อให้กับมาตรวจทานเปลี่ยนแปลงข้อสอบได้สะดวกรวดเร็ว เนื่องจากทำข้อสอบเสร็จค่อนข้างเร็ว ผมจึงมีเวลาตรวจทานซ้ำได้พอสมควร หลักสำคัญก็คือควรจะอ่านข้อสอบให้ละเอียด บางคำตอบเหมือนจะถูกแต่ถ้าอ่านคำถามให้ดีและเช็คคำตอบอื่นจะพบว่าคำตอบที่ถูกต้องจะเป็นอีกข้อหนึ่ง ดังนั้นควรทำเสร็จให้เร็วจะได้กลับมา review ข้อสอบต่างๆ ที่ยังไม่มั่นใจ 100% อีกครั้ง ก่อนกดปุ่มยุติการสอบครับ

ถ้าเป็นการสอบผมจะใช้เวลาคุ้มตลอด  มีเวลาเหลือผมก็ review รอบสองจนครบ 90 นาที พอครบ 90 นาทีปุ๊บ ระบบแจ้งผลให้ทราบในทันที  Congratulation!!  สอบผ่านแล้ว เย้ๆๆ


ปล. ในการสอบครั้งนี้ผมไม่ได้เสียค่าใช้จ่ายในการเข้าสอบเอง ต้องขอขอบคุณพี่วี (webofficedesign.com) ที่สนับสนุนและเคี่ยวเข็ญทำให้ได้ไปสอบในครั้งนี้ด้วยครับ :)

วันศุกร์ที่ 15 พฤศจิกายน พ.ศ. 2556

php function return refernce

function return reference ก็คือ function ที่จะคืนค่าเป็น reference ของตัวแปรนั่นเองครับ

<?php
function &f(&$a,&$b,$status){
    if ($status == 1)
         return $a;
    else
         return $b;
}

$a=100;
$b=200;
$v1 = &f($a,$b,1); //reference $a
$v2 = &f($a,$b,0); //reference $b

$v1 = 11111;
$v2 = 22222;
var_dump($a); //เปลี่ยนตาม $v1
var_dump($b); //เปลี่ยนตาม $v2