Zend Framework 2.0 ออกตัว Stable แล้ว!

หลังจากที่ Zend Framework ออก version 1.0 ออกมาเมื่อปี 2007 ผ่านมา 5 ปี วันนี้ก็ได้เวลาของ version 2.0 เสียที จาก Zend Framework 2.0.0 STABLE Released! และ Changelog: 2.0.0 ผมสรุปสั้นๆ ตามนี้

ใน Zend Framework 2 มีทีมพัฒนาจาก Google, Microsoft, StrikeIron และ partner ต่างๆ มากมายเข้าร่วมพัฒนาเพื่อสร้าง API ติดต่อกับ Web Services ของตัวเองให้ดีมากขึ้น

การเปลี่ยนแปลงใน Zend Framework 2 นั้นมีดังต่อไปนี้

  • สนับสนุน PHP 5.3 ขึ้นไป เพราะใช้ namely namespaces, late static binding, lambda functions และ closures มาพัฒนา เพราะฉะนั้นได้เวลาเรียนรู้กันแล้วครับ (จริงๆ มันควรจะเริ่มกันนานแล้วนะ)
  • 100% Object-oriented code และ Component designed (dependencies on other component) ตอนนี้แยกเดี่ยวๆ ได้ดีมากขึ้น
  • รองรับ Pyrus, Composer, PHPUnit และ Travis CI เพื่อช่วยพัฒนาตัวเว็บ

มี Key Feature ส่วนของ Component ใหม่คือ

  • ModuleManager
    This new module system is designed with flexibility, simplicity, and re-usability in mind
  • ServiceManager
    The Service Locator is a service/object locator, tasked with retrieving other objects.
  • EventManager
    Component designed for the following use cases
    – Implementing simple subject/observer patterns.
    – Implementing Aspect-Oriented designs.
    – Implementing event-driven architectures.

ได้เวลาลองของใหม่แล้วครับพี่น้อง!!!!

Read more

เมื่อ Web/Windows Developer จะกระแดะไปทำ iOS App ชีวิตมันก็ไม่ง่าย

เมื่อวันเสาร์ที่ผ่านมาไปงาน Bangkok Adobe Camp ได้พบทางอีกทางที่น่าจะโอเคสำหรับคนใช้ Windows แต่อยากทำ App บน iOS แน่นอนว่ามันต้องทำด้วย HTML5 + jQuery Mobile สิ่งที่ต้องการไม่มีอะไรมากมาย ให้มันทำงานได้บนนั้นและ call พวก native api ทั่วๆ ไปได้ เช่นพวกกล้องถ่ายรูป ฯลฯ พวก sync data ต่างๆ

ซึ่งผมก็รู้จักกับ Build.PhoneGap.com มาได้สักพักใหญ่ๆ แล้ว แต่ไม่ทราบว่ามัน Compile in the Cloud ได้ เพราะจำได้ตอนที่ได้ลอง PhoneGap ตอนแรกผิดหวังมารอบแล้ว เพราะว่ามันไม่สามารถ build บน Windows ให้เป็น ipa ได้ เพราะขาด SDK ของ iOS นั้นเอง

แต่เมื่อวันเสาร์พอทราบ ผมก็นั่งๆ ลองๆ หาข้อมูลต่อไป ซึ่งสุดท้ายแล้วการจะ Build ตัว iOS App บน Build.PhoneGap.com ต้องใช้ Signature Certificates ของ Apple ด้วย สุดท้ายวันอาทิตย์ตอนดึกๆ ก็เลยสมัคร Apple iOS Developer ไปซะเลย หมดไป $99 ซะอย่างงั้น (นี่มันลองของจริง เสียเงินแพงมาก!!!)

พอสมัครเสร็จรอ confirm อีเมล ตอนเช้ามาก็ได้ลองของ สิ่งที่ไม่คาดคิดก็เกิดขึ้น ขั้นตอนการสร้าง Certificates บางตัว ต้องใช้ Keychain Access บนเครื่อง Mac …. T_T

ผมก็เลยไปยืมเครื่องพี่ที่ทำงานเค้าทำให้แทน ขั้นตอนมันก็มีประมาณนี้

  • ไป generate ตัว Certificate Signing Request จาก Keychain Access บนเครื่อง Mac ก่อน เสร็จแล้วไป submit ในเว็บ Apple ที่ iOS Provisioning Portal เมนู Certificates
  • รอสักพักจะได้ developer_identity.cer ออกมา แล้วให้ import cert ตอนนี้เข้าเข้า Keychain Access แล้ว Export เป็น Certificates .P12
  • เสร็จแล้วกลับไปที่ เว็บ Apple ที่ iOS Provisioning Portal ก่อนหน้านี้
  • สร้าง Profile ของ Devices
  • สร้าง App ID จาก App IDs
  • สุดท้ายสร้าง Provisioning Profiles เพื่อให้ได้ mobileprovision ออกมา
  • แล้วเอาทั้ง Certificates .P12 และ mobileprovision จากเว็บ Apple ที่ iOS Provisioning Portal มา submit ที่ Build.Phonegap.com

พอได้ Certificates .P12 และ mobileprovision แล้วอะไรก็ไม่ยากแล้วครับ ^^/

เดี่ยวขอเวลาไปลองเล่นสักแป็บ ^^

วิถีแห่ง Developer vs Photographer #BCBK

จากการเป็น Developer มานานและถ่ายรูปมาได้เกือบๆ 4 ปี ได้สัมผัสและได้รู้ว่าความแตกต่างและการทำให้ชีวิตนั้นอยู่ตรงกลางนั้นยากแค่ไหน เมื่อวานจากงาน Barcamp Bangkhen 2 เลยได้เล่าเรื่องราวเหล่านี้ให้คนที่สนใจได้ฟังกัน

สำหรับเรื่องอื่นๆ ที่ไม่กล่าวถึงใน blog นี้ถือว่า exclusive content ใน session แล้วกันนะครับ ;P

Developer

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

Photographer

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

ชมภาพผลงานผมที่ www.flickr.com/photos/fordantitrust/collections/

ทิ้งท้าย

Open your mind, make fun with your photos

เล่นง่ายๆ กับเช็คว่า ip, e-email หรือ username ที่สมัครสมาชิกเข้ามาเป็น spammer หรือไม่?

ช่วงนี้เจอเรื่องปวดหัวเกี่ยวกับ spam ใน forum เยอะมาก ตอนนี้เลยใช้วิธีง่ายๆ ไปก่อนผ่าน http://www.stopforumspam.com ก็กันได้ในระดับนึง แต่ว่ามี API Limit อาจจะต้องหาวิธีอื่นๆ แก้ไขเฉพาะหน้ากันต่อไป คิดว่าน่าจะพอไหวอยู่

<?php
function is_forumspam_objectsIntoArray($arrObjData, $arrSkipIndices = array()) {
    $arrData = array();

    // if input is object, convert into array
    if (is_object($arrObjData)) {
        $arrObjData = get_object_vars($arrObjData);
    }

    if (is_array($arrObjData)) {
        foreach ($arrObjData as $index => $value) {
            if (is_object($value) || is_array($value)) {
                $value = is_forumspam_objectsIntoArray($value, $arrSkipIndices);
            }
            if (in_array($index, $arrSkipIndices)) {
                continue;
            }
            $arrData[$index] = $value;
        }
    }
    return $arrData;
}

/**
http://www.stopforumspam.com/api?ip=91.186.18.61
http://www.stopforumspam.com/[email protected]
http://www.stopforumspam.com/api?username=MariFoogwoogy
**/
function is_forumspam($var) {

    $var['email'] = urlencode($var['email']);

    $q = 'username='.$var['username'].'&email='.$var['email'].'&ip='.$var['ip'];

    $xmlUrl = "http://www.stopforumspam.com/api?".$q."&f=xmldom";

    $xmlStr = file_get_contents($xmlUrl);

    $xmlObj = simplexml_load_string($xmlStr);

    $arrXml = is_forumspam_objectsIntoArray($xmlObj);

    if($arrXml['ip']['appears'] == 1)
    return true;
    if($arrXml['email']['appears'] == 1)
    return true;
    if($arrXml['username']['appears'] == 1)
    return true;

    return false;
}

อ้างอิงจาก http://www.stopforumspam.com

ประกาศจัดงาน Techno : HTML5, WP7 Developers, Social ครั้งที่ 1

เชิญผู้สนใจร่วมงาน Techno <Tags> (by MVPs) ครั้งที่ 1

โดยจะนำเสนอ และถ่ายทอดความรู้ทางเทคโนโลยี ที่น่าสนใจในปัจจุบันและกำลังจะเป็นที่นิยมในอนาคต โดยในครั้งนี้ จะเป็นการเน้นเนื้อหาไปที่ การพัฒนาเว็บเพื่อให้เป็นเว็บแห่งอนาคตด้วย HTML5, ทักษะที่จำเป็นในการพัฒนา App สำหรับ Windows Phone 7, การสร้างเว็บเพื่อเชื่อมต่อกับระบบ Social ของ  Facebook และ Twitter และ การบริหารงานเว็บไซต์ และ hosting ภายใต้ BSD License เหมาะสำหรับ ผู้สนใจในการพัฒนาเว็บด้วย HTML5 , ผู้สร้าง App สำหรับ Windows Phone 7
งานนี้เกิดจากความร่วมมือของ Developer Communities และ MVPs ได้แก่ CodeToday.net, CoreSharp.net ,Greatfrinds.Biz และ MVPs โดยร่วมมือกันจัดงานนี้ขึ้น และได้รับการสนับสนุนต่างๆ จากทาง บ.ไมโครซอฟท์ ประเทศไทย

กำหนดจัดงาน : วันอาทิตย์ที่ 12 มิถุนายน 2554 เวลา 10:00น.- 15:30น.

สถานที่ : ห้อง Auditorium 1-3 บ.ไมโครซอฟท์ ประเทศไทย ชั้น 38  ตึก CRC All Season Place ถ.วิทยุ

การลงทะเบียน : รับลงทะเบียนจำกัด โดยกรอกข้อมูลลงทะเบียนผ่านระบบลงทะเบียนเท่านั้น เต็มแล้วปิดทันที ลงทะเบียนได้ถึงวันศุกร์ที่ 10 มิย 2554 นี้ ก่อน 17:00น.

http://bit.ly/TechnoTagsRegis01

(**ขอความร่วมมือทุกท่านลงทะเบียนแล้วขอให้มาร่วมงานได้ เพื่อไม่เป็นการกันสิทธิ์ผู้อื่น**)

Agenda:
10:00 – 10:30      การบริหารงานเว็บไซต์ และ hosting server ด้วย WebistePanel ที่เป็น OpenSource ภายใต้ BSD License
10:30 – 11:30      HTML5 ตอนที่ 1 The First Look ทำเว็บให้พร้อมสำหรับ HTML5 (อ.สุพจน์ พันธ์สกุล Microsoft MVP ASP.NET)
11:30 – 12:30      From Zero to Hero พัฒนา App บน Windows Phone (คุณจิรวัตน์ ผดุงกิจจานนท์ Microsoft MVP Windows Phone)
12:30 – 13:30      พักกลางวัน
13:30 – 14:30      HTML5 ตอนที่ 2 HTML5 In Action (สงวน ธรรมโรจน์สกุล)
14:30 – 15:30      How it works – อยากทำเว็บให้เชื่อมต่อกับ Facebook และ Twitter  (สุวิชชา จันทร Microsoft MVP)