How to check array isset and is_null in PHP

ถ้า value ของ Array ช่องนึงเป็น NULL เวลาที่เช็คด้วยคำสั่ง isset มันจะได้ false ดังตัวอย่างนี้
[php]<?php
$arr = array();
$arr[‘foo’] = NULL;
var_dump( isset( $arr[‘foo’] ); // ให้ผลลัพท์เป็น bool(false)
?>[/php]
วิธีที่จะเช็คว่า Array มีการกำหนด key นั้นอยู่ และค่าของมันเป็น NULL ด้วย ให้ใช้คำสั่ง array_key_exists ดังตัวอย่างนี้นี้
[php]<?php
if ( array_key_exists( ‘foo’, $arr ) && is_null( $arr[‘foo’] ) )
echo "OK";
?>[/php]

Install CentOS 6.4 บนเครื่องที่เป็น UEFI

พอดีได้เครื่อง IBM sytem x3250 M4 มา ผมก็จะนำมาติดตั้ง CentOS 6 + DirectAdmin ตามปรกติ แต่ปรากฏว่าติดปัญหาหลาย step โคตรๆ ตั้งแต่ไม่บูทแผ่น ไม่บูท USB กว่าจะ debug จนทำให้มันบูทเข้า USB ได้นี่ก็เสียเวลาไปเยอะ เพราะว่า Restart แต่ละทีมันรอนานมาก

สรุปประเด็นหลักๆ ที่ติด และวิธีการแก้ไข

1.) USB ที่สร้างมาจาก minimal มันจะไม่สามารถบูทได้ วิธีแก้ คือ ให้ copy โฟลเดอร์ /images/pxeboot ที่อยู่ในแผ่น DVD-1 มาใส่ใน USB ด้วย

2.) การกำหนด Partition ตอนติดตั้ง OS ให้กำหนดเป็นแบบนี้

  • /dev/sda
    • /boot   ext3  200M
    • /boot/efi     EFI System Partition   200M
  • /dev/sdb
    • … ext3 200M
    • … vfat 200M

ปรับความกว้าง คอลัมน์ซ้ายของ Gmail

พอดีอยากได้ left column ของ Gmail ให้กว้างๆ หน่อย เพราะว่ามี Label ที่ชื่อยาว แล้วมันมองไม่เห็นเลขจำนวน Unread. ก็เลยไปเสิร์ซหาดู พบ UserScripts ในอันดับแรกๆ เลย.  Feature ใช้ได้เลย มันจำความกว้างที่เราตั้งไว้ ไว้ใน cookie ด้วย ถ้าเรามีการเปิดหน้า Gmail ใหม่ มันก็จะปรับความกว้างไว้ให้เลย.

Continue reading “ปรับความกว้าง คอลัมน์ซ้ายของ Gmail”

Modifying timthumb.php in wordpress’s theme for optimize performance

ปรกติแล้วใน timthumb.php จะมีความสามารถในการ cache รูปที่ถูกย่ออยู่แล้ว เพื่อไม่ให้มันต้อง crop รูปสำหรับทุกๆ request. แต่ว่าปัญหา คือ ไฟล์ cache ของ timthumb นั้น มันไม่ใช่ไฟล์รูปที่สามารถเปิดดูได้โดยตรง เพราะว่าที่ส่วนหัวของ cache จะมี filePrependSecurityBlock แทรกอยู่เพื่อป้องกันการส่งสคริปท์ php เข้าไปรัน. จากลักษณะการทำงานที่เป็นชี้นี้ ทำให้เราไม่สามารถใช้พวก Reverse proxy หรือ CDN มาช่วยในการลดโหลดได้ของ WordPress ที่มีจำนวน Traffic สูงๆ ได้ (ไม่งั้นมันเรียก php ขึ้นมาทำงานตลอด). Continue reading “Modifying timthumb.php in wordpress’s theme for optimize performance”

ติดตั้ง Apache 2.4, PHP 5.4, MySQL บน Windows 7

  1. สร้างโฟลเดอร์ C:\Wamp\ และ C:\Wamp\www
  2. ดาวน์โหลด Apache 2.4 (หรือดาวน์โหลดจากที่นี่ http://www.apachelounge.com/download/) ไปวางเป็น C:\Wamp\Apache2.4\
  3. ดาวน์โหลด VC9 x86 Thread Safe หรือจากที่นี่
    http://windows.php.net/download/
    Extract File ที่ตำแหน่ง C:\Wamp\php-5.4\
  4. แก้ไขไฟล์ C:\Wamp\Apache2.4\conf\httpd.conf
    1. แก้ตัวแปรต่างๆ ดังนี้
      ServerRoot “C:/Wamp/Apache2.4”
      Replace All: c:/Apache24/htdocs With: C:/Wamp/Apache2.4/www
      AllowOverride None เปลี่ยนเป็น AllowOverride All
    2. เติมโค๊ดนี้เข้าไปที่ด้านล่างสุด
      LoadModule php5_module "C:/Wamp/php-5.4/php5apache2_4.dll"
      AddHandler application/x-httpd-php .php
      PHPIniDir "C:/Wamp/php-5.4"
      DirectoryIndex index.html index.php
    3. Enable module ต่อไปนี้
      1. mod_expires.so
      2. mod_headers.so
      3. mod_rewrite.so
      4. mod_socache_shmcb.so
      5. mod_ssl.so
    4. Uncomment บรรทัดนี้ “Include conf/extra/httpd-ssl.conf”
  5. แก้ไฟล์ C:\Wamp\Apache2.4\conf\extra\httpd-ssl.conf
    1. SSLCertificateFile “C:\Wamp\Apache2.4\conf\ssl\server.crt”
    2. SSLCertificateKeyFile “C:\Wamp\Apache2.4\conf\ssl\server.key”
    3. SSLSessionCache        “shmcb:C:/Wamp/Apache2.4/logs/ssl_scache(512000)”
    4. DocumentRoot “C:/Wamp/www”
    5. ErrorLog “C:/Wamp/Apache2.4/logs/error.log”
    6. TransferLog “C:/Wamp/Apache2.4/logs/access.log”
    7. CustomLog “C:/Wamp/Apache2.4/logs/ssl_request.log”
  6. rename “C:\Wamp\php-5.4\php.ini-development” to  “C:\Wamp\php-5.4\php.ini”
  7. แก้ไฟล์ php.ini
    1. extension_dir = “C:/Wamp/php-5.4/ext”
    2. date.timezone = “Asia/Bangkok”
    3. enable extensions
      1. extension=php_mysql.dll
      2. extension=php_mysqli.dll
  8. cmd.exe (Run as Administrator) แล้วรันคำสั่ง
    cd \Wamp\Apache2.4\conf\
    ..\bin\openssl.exe req -config openssl.cnf -x509 -nodes -subj "/C=TH/ST=Bangkok/L=Bangkok/O=localhost/OU=SEC/CN=localhost" -days 1825 -newkey rsa:2048 -keyout ssl\server.key -out ssl\server.crt
    C:\Wamp\Apache2.4\bin\httpd.exe -k install
  9. ใน Environment Variables ตรง System Variables ให้เติม C:\Wamp\Apache2.4; C:\Wamp\Apache2.4\bin ต่อเข้าไปใน PATH
  10. ดาวน์โหลด mysql (.msi) จากที่นี่ http://dev.mysql.com/downloads มาติดตั้ง

Time’s Up!

เซ็งมากๆ ตอนนี้งานค้างใน Trello เต็มไปหมดเลย. ยังเคลียของเก่าได้ไม่เท่าไหร่ พอของใหม่เพิ่มเข้ามา แล้วมันมากกว่าเดิมอีก (T-T…

รู้สึกได้ว่าทำงานช้าลงโคตรๆ ก่อนหน้านี้ผมเข้าใจว่ามันเป็นเพราะมีงานอื่นๆ เข้ามาขัดจังหวะมากเกินไป หรือไม่ก็ทำงานอื่นๆ จนพลังงานผมมันหมดไปแล้ว. แต่มาตอนนี้ผมเริ่มกลัวว่ามันจะเป็นปัญหาที่ตัวผมที่ noob เอง.

ผมอยากจะหายตัวได้จัง…

ตอนนี้สิ่งที่ต้องทำเพื่อแก้ปัญหา กับปัญหาที่ต้องแก้(ก่อน) มันเหมือนเป็นสิ่งที่ทำให้ผมวิ่งเป็นวงกลม และถ้าผมต้องการที่จะหยุดวงจรอุบาตนี้ ผมต้องวิ่งให้เร็วขึ้นและนานขึ้น. ไอ้เxี้ยเอ๊ย แล้วถึงตอนนั้นผมจะยังมีชีวิตรอดมั้ยวะเนี่ยครับ!? /piff