วันพุธที่ 7 ธันวาคม พ.ศ. 2559

การทำงานเกี่ยวกับ Font เมื่อเจอ สระกับวรรณยุกต์ทับกัน

เนื่องจากวันนี้ มีปัญหาจากการทำงานที่พบคือ  ตัวอักษรกับวรรณยุกต์ ทับกันใน pdf
จากการตรวจสอบพบว่าเป็นเพราะ Font  เพราะงั้น วันนี้ เลยมาแนะนำ Tool ที่เกี่ยวกับ ฟอนต์กัน

สาเหตุแรก ที่สระกับวรรณยุกต์ทับกัน เพราะว่าฟอนต์ ไม่ได้ออกแบบสำหรับภาษาไทยโดยเฉพาะ ซึ่งอันนี้ ต้องลองเอาเอง  ยกตัวอย่างเช่น

คำว่า ยี ยี่ ยี้ ยี๊  ผลจากฟอนต์แต่ละตัว ที่นำมาลงในเอกสาร pdf จะได้ดังนี้

จะเห็นว่า แม้ฟอนต์ที่ใช้ ในระบบวินโดส์ปกติ จะรองรับภาษาไทย  แต่เมื่อนำมาใช้กับเอกสาร pdf แล้ว จะได้สระและวรรณยุกต์ ทับกัน ต่างจากฟอนต์ที่ออกแบบโดยคนไทย  จะไม่ค่อยมีปัญหานี้ครับ

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


ดาวน์โหลดได้จากที่นี่ http://www.xiles.net/


* font ตระกูล TF เป็นฟอนต์ฟรีจากสมาพันธ์อุตสาหกรรมการพิมพ์ นะครับ ดาวน์โหลดได้จากที่นี่
http://www.printfederation.or.th/index.php/downloads/viewcategory/1-thailand-fonts

หรือ Facebook
https://www.facebook.com/thaiprinting/posts/375170855887215

สาเหตุที่ใช้ฟอนต์ชุดนี้ นอกจากเหตุผลหลักคือฟรีแล้ว  ฟอนต์ชุดนี้ ยังมีฟอนต์ที่ลักษณะ คล้าย Cordia อยู่มาก (ซึ่งฟอร์ม pdf ต้นฉบับดูเหมือนจะใช้ ตัวอักษร Cordia ในการออกแบบครับ)

ซึ่งต้องขอขอบคุณ สมาพันธ์อุตสาหกรรมการพิมพ์มา ณ ที่นี้ด้วยครับ

วันพฤหัสบดีที่ 4 สิงหาคม พ.ศ. 2559

การติดตั้ง PHP ใน Apache

ผมเริ่มต้นที่

http://windows.php.net/downloads/releases/archives/

เพื่อค้นหา php version เก่าๆ  เพื่อใช้กับแอพที่ต้องการ ซึ่งรองรับได้เพียง Version 5.3

จึงได้เลือกโหลด
php-5.3.9-Win32-VC9-x86 มา

เพราะการติดตั้ง Apache ครั้งก่อน เลือก  httpd-2.2.31-win32  เอาไว้ ซึ่งภายในจะมี dll

php5apache2_2.dll ให้ใช้กับ Apache รุ่น 2.2 ได้

เมื่อโหลดไฟล์เสร็จ ก็ทำการแตกไฟล์เอาไว้ใน Drive C: ชื่อว่า PHP

C:\PHP

จากนั้น กลับไปที่ Apache  เพิ่มค่า Config เข้าไปในไฟล์ C:\Apache2\conf\httpd.conf ในบรรทัดท้ายสุด ดังนี้

LoadModule php5_module "C:/PHP/php5apache2_2.dll"
AddHandler application/x-httpd-php .php .html .htm
PHPIniDir C:PHP

จะสังเกตว่า การตั้งค่า Config path ใน ไฟล์พวก PHP หรือ Apache นั้น จะใช้ "/" แทน "\" ที่คุ้นเคยใน Windows

ตั้งค่าเสร็จแล้ว ก็ต้องไปตั้งค่า php.ini ต่อ ดังนี้

ไปที่โฟลเดอร์ C:\PHP แล้ว เปลี่ยนชื่อไฟล์ php.ini-development เป็น php.ini (coy มาเปลี่ยนชื่อก็ได้ ถ้าต้องการต้นฉบับเก็บไว้)

แล้วตั้งค่า php.ini ดังนี้

เลือกใช้ extension ที่ต้องการ
ตั้งค่า TimeZone ให้เป็นกรุงเทพ หรือ สถานที่ตามต้องการ มีลิงค์รายการอยู่ด้านบน หรือ
http://php.net/manual/en/timezones.asia.php
date.timezone = "Asia/Bangkok"
ตั้งค่า short_open_tag = On ในกรณีที่ต้องการใช้รูปแบบ <? ?>
ตั้ง Path ให้เรียก dll ได้ถูกต้อง
include_path = "c:php"
extension_dir = "c:php/ext"

จากนั้น กลับไปที่ Cmd ของ Apache เพื่อสั่ง Restart

หากไม่มีอะไรผิดพลาด สามารถทดสอบด้วย คำสั่ง php

<? echo phpinfo(); ?>

ได้

การติดตั้ง Server Apache ใน Windows และ PHP

สำหรับ Apache Server ที่ใช้กันใน Windows สามารถหาดาวน์โหลดได้ที่

https://www.apachelounge.com

โดยมีสิ่งที่ต้องพึงระวัง ดังนี้
Server 64 bit ต้องใช้กับ php 64 bit และเป็น VC เดียวกัน หรือที่รองรับได้
Server 32 bit ต้องใช้กับ php 32 bit VC ต้องรองรับ
ตัว dll ใน PHP จะเป็นตัวกำหนด Version ที่ใช้ได้กับ Apache Server
เช่นใน โฟลเดอร์ PHP มีไฟล์ php5apache2_4.dll ก็ต้องใช้กับ Apache Server version 2.4.x เท่านั้น (ต้องใช้ Thread Safe version เพราะ Non Thread Safe version จะไม่มี dll สำหรับ Apache)

อย่างแรก ไปโหลด ตัว Apache กันก่อน

จะได้ไฟล์ประมาณ httpd-2.4.xx-win64-VC14.zip (อันนี้แล้วแต่ว่าจะเลือกใช้ 32bit หรือ 64bit)
ยกตัวอย่าง ผมยังต้องการใช้ PHP version เก่า ประมาณ 5.3
จึงเลือกโหลด
httpd-2.2.31-win32 มา (เนื่องจาก ต้องใช้กับ php 5.3 ซึ่งยังไม่มี x64 ให้โหลด)
แตกไฟล์มา จะได้ โฟลเดอร์ Apache2 และ ขั้นตอนการลงมา ซึ่งถ้าไม่เปลี่ยนชื่อโฟลเดอร์ ก็ไม่ต้องทำอะไรมาก Copy หรือ ย้าย Apache2 ไปไว้ที่ Drive C

แล้วใช้ Cmd ในโหมด Administrator
เพื่อใช้คำสั่งดังนี้

สั่งลงแบบ Service จะใช้คำสั่ง

C:\Apache2\bin\httpd -k install

ซึ่งต้องระวังนิดนึง หากใช้เครื่องนึงร่วมกันหลาย Server จำเป็นจะต้องเลือก Port ใหม่ หาก 80 ถูกใช้ไปแล้ว ที่ไฟล์

C:\Apache2\conf\httpd.conf

คำสั่ง

Listen 80 --> เปลี่ยนเป็น port ที่ต้องการ บันทึกไฟล์ ก่อนทำการ start service ด้วยคำสั่ง

C:\Apache2\bin\httpd -k start

ถ้าต้องการ หยุดก็ใช้ 

C:\Apache2\bin\httpd -k stop

ถ้าต้องการลบ Service ออก ใช้

C:\Apache2\bin\httpd -k uninstall

แต่หากมีการแก้ config หรือติดตั้ง module ใหม่ ใช้คำสั่ง restart ก็ได้

C:\Apache\bin\httpd -k restart

ทดสอบด้วยการเปิด http://localhost  หรือ http://localhost:xx 
เพื่อดูข้อความเทสที่มากับ Apache "It's work"

ใน Apache เราสามารถดู log การทำงานได้ที่

C:/Apache2/logs

ซึ่งที่ต้องสนใจมากคือ error.log

วันจันทร์ที่ 1 สิงหาคม พ.ศ. 2559

การปรับขนาดตัวอักษร Font size Outlook

เนื่องจาก บางเมล ตั้งขนาดตัวอักษรมาเล็กมาก อ่านไม่เห็น ยิ่งจอสมัยใหม่ ความละเอียดสูง สุดยอด พาลจะพาเล็กลงไปอีก  เลยต้องมาปรับ Outook กันนิดนึง ตามสเตป ดังนี้

1.  ปรับให้อ่านเมลทุกเมล เป็น Plain Text  หรือว่ากันง่ายๆ คือ มาเป็นข้อความอย่างเดียว จะมีรูปอะไร ในเมล ไม่สนใจทั้งนั้น

https://support.office.com/en-us/article/Read-email-messages-in-plain-text-2443da66-4ab8-451e-98a8-489a58d00a40?ui=en-US&rs=en-US&ad=US&fromAR=1

2. หลักจากปรับตัวอักษรแล้ว  ก็มาปรับขนาดตัวอักษรในหน้าวิว และหน้าอ่าน อีเมล์กัน
2.1 ปรับหน้ารายการอีเมล์
https://support.office.com/en-us/article/Change-the-font-or-font-size-of-the-message-list-f60520e6-7136-42f6-a7e1-f762ef1d54fa
2.2 ปรับหน้าอ่าน
https://support.office.com/en-us/article/Set-the-font-or-text-color-for-messages-you-send-83425b7b-4acc-4e94-8c04-fa1e31790318

วันพฤหัสบดีที่ 28 กรกฎาคม พ.ศ. 2559

โปรแกรมสำหรับทำพวก Prototype และ Diagram ต่าง ๆ

ผมลงเฉพาะตัวที่ใช้กับ Windows 10 ได้นะ เนื่องจาก ส่วนตัว ใช้ Windows 10 อยู่ครับ

อันนี้เสียเงิน มีทดลองใช้

AXURE RP
ไว้ทำ Prototype และ วาดพวก Diagram แต่เสียเงินนะ อันนี้
http://www.axure.com/

อันนี้ก็เสียเงิน แต่มีเวอร์ชั่นฟรีให้ใช้

Visual Paradigm
ไว้สำหรับเขียนพวก Diagram มีเวอร์ชั่น Community (ฟรี) ให้ใช้
https://www.visual-paradigm.com/

Justinmind
ไว้สำหรับทำพวก Prototype มีให้ทดลองใช้ 30 วันแรก หลังจากนั้นจะเป็นเวอร์ชั่นฟรีให้ใช้
http://www.justinmind.com/

อันนี้ ฟรี ไม่เสียเงิน บริจาคได้ตามศรัทธา
Dia
สำหรับวาดพวก Diagram ต่าง ๆ
http://dia-installer.de/

Pencil
สำหรับวาดพวก Diagram ต่าง ๆ
http://pencil.evolus.vn/

โปรแกรมสำหรับทำพวก Prototype และ Diagram ต่าง ๆ

มีทั้งฟรีและเสียเงิน  เอาไว้ว่าง ๆ จะแยกให้นะ

AXURE RP
ไว้ทำ Prototype และ วาดพวก Diagram แต่เสียเงินนะ อันนี้
http://www.axure.com/

Visual Paradigm
ไว้สำหรับเขียนพวก Diagram มีเวอร์ชั่น Community (ฟรี) ให้ใช้
https://www.visual-paradigm.com/

Justinmind
ไว้สำหรับทำพวก Prototype มีให้ทดลองใช้ 30 วันแรก หลังจากนั้นจะเป็นเวอร์ชั่นฟรีให้ใช้
http://www.justinmind.com/

วันพฤหัสบดีที่ 21 กรกฎาคม พ.ศ. 2559

การติดตั้ง PHP 5.6 (5.6.14) ลงใน Windows Server 2008 R2

สิ่งที่ต้องเตรียมก่อนลง PHP
1. Microsoft Visual C++ 2012 Redistributable (x86) - 11.06.61030
2. Oracle Client

สิ่งที่ต้องเตรียมก่อนลง Oracle Client 12c
1. Microsoft Visual C++ 2010 x86 Redistributable - 10.0.30319

การลง Oracle Client 12c
1. Download File
2. Extract File
3. ตั้งค่า PATH
4. ทดสอบ Oracle

1. Download PHP Version Non Thread Safe ที่ http://windows.php.net/download
2. Extract File ที่ได้ ลงใน โฟลเดอร์ ที่ต้องการ ในที่นี้ใช้
C:\php-5.6.14-nts-Win32-VC11-x86

3. rename file php.ini-production หรือ copy แล้วเซฟเป็นชื่อ php.ini
หากไม่เห็นชื่อ นามสกุลไฟล์ .ini ให้ทำการแสดง นามสกุลใน Explorer ก่อน ดังนี้
http://itclubth.blogspot.com/2015/11/windows-server-2008-r2.html
4. ทำการตั้งค่า php.ini
session.save_path  = "c:\xxx\xxx"
upload_tmp_dir = "c:\xxx\xxx"
open_basedir = "c:\xxx\xxx; c:\xxx"


4. ทดสอบ PHP ด้วย Command Line.
ด้วยการพิมพ์คำสั่ง php -info ในโฟลเดอร์ของ php เอง เพื่อเรียกใช้ php.exe

ภาพนี้เป็นตัวอย่าง เมื่อเรียกใช้ php แล้วเกิด error MSVCR100.dll
จำเป็นจะต้องติดตั้ง Microsoft Visual C++ 2010 Redistributable Package (x86) หรือจะใช้ x64 ก็ได้ แต่ Database และ PHP ควรเป็น 32 หรือ 64 bit เหมือนกัน
6. ตั้งค่า PHP กับ IIS

7. ทดสอบ PHP กับ IIS

8. ทดสอบ PHP กับ Oracle

วันพุธที่ 3 กุมภาพันธ์ พ.ศ. 2559

การลบทุกตารางออกจาก Oracle

BEGIN

FOR c IN (SELECT table_name FROM user_tables) LOOP
EXECUTE IMMEDIATE ('DROP TABLE "' || c.table_name || '" CASCADE CONSTRAINTS');
END LOOP;

FOR s IN (SELECT sequence_name FROM user_sequences) LOOP
EXECUTE IMMEDIATE ('DROP SEQUENCE ' || s.sequence_name);
END LOOP;

FOR i IN (SELECT view_name FROM user_views) LOOP
EXECUTE IMMEDIATE 'DROP VIEW ' || i.view_name;
END LOOP;

END;

* คำสั่งนี้ จะทำงานทันที ให้ระวังในการใช้งาน

วันอังคารที่ 26 มกราคม พ.ศ. 2559

Review Harddisk SSD

สืบเนื่องจาก Harddisk ตัวเก่า ใกล้จะไปแล้ว  เปิด Photoshop แล้วจอฟ้า  ถึงกับต้องแสกน Harddisk ทุกครั้งที่เจอปัญหานี้ ทำให้ต้องทำใจ หาตัวใหม่  ก็ลอง ๆ เลือกในเว็บดู ก็เห็นว่า SSD 240 GB ราคา ราว ๆ สามพัน พอจะจับต้องได้  (เมื่อก่อน ไม่ถึง 100 GB นี่เป็นหมื่นเลยนะ) เมื่อวานก็เลยรีบกลับ แวะไปที่พันทิพย์เลย  ที่ ๆ คุ้นเคย ไม่รู้จริง ๆ ว่าเด๋วนี้ ไปซื้อคอมที่ไหนกัน แต่โตมากะพันทิพย์เนี่ยแหละ

ก็ไปที่ร้าน หา ๆ ดู 240 GB รุ่นที่ถูกที่สุด  ก็ได้เจ้าตัวนี้มา SSD Sandisk SSD PLUS 240 GB ราคา ก็ 3190 บาท ที่ banana ซึ่งจริงๆ ร้าน Jib ขายถูกกว่านะ แต่ตอนนั้น อยากได้กล่อง External ไว้ใส่ Harddisk ตัวเก่าด้วย ถามที่ Jib พนักงานบอกไม่มี เลยลองไปดู ร้านอื่น พอดีไปถามที่ banana ก็ไม่มีหรอกนะ แต่พนักงานบอกราคา และวิ่งออกไปหาให้เลย ก็เอาวะ บริการดี ซื้อที่นี่ก็ได้ ตอนแรกนึกว่าจะรูดได้หมด แต่กล่องต้องออกเงินสด  เพราะไปหยิบร้านอื่นมา  ก็อดไป เพราะพกติดตัวไปแค่ สามร้อย เลยรูดได้แต่ SSD จริงๆ  การเลือกซื้อ SSD ต้องดูความเร็วในการอ่าน การเขียนด้วยนะ แต่ละรุ่น ไม่เท่ากัน บางรุ่น อ่านเขียนเท่ากัน บางรุ่น เน้นอ่าน  เน้นเขียน แต่รุ่นที่เลือกมา เป็นรุ่นที่ ความเร็วในการอ่านมากกว่าเขียน

กลับมาถึงห้อง ก็จัดแจง ถอด Harddisk เก่าออกก่อนเลย แล้วใส่ เจ้าตัวใหม่ทันที  ปกติ Harddisk Notebook จะมีขนาด 2.5" ซึ่ง SSD ที่ขายทั่วไปตอนนี้ ก็ 2.5" เอามาใส่แทนกันได้ทันทีอยู่แล้ว  การถอดออกมาเปลี่ยนจึงไม่มีปัญหาอะไรเลย ซึ่ง Interface ที่ใช้กันอยู่ตอนนี้ ก็ SATA เหมือน ๆ กัน จะต่างกันก็ ความเร็วในการรับส่งข้อมูลนั่นแล

หลังจากเปลี่ยนเสร็จ ก็ลงวินโดส์ใหม่  ได้เรื่องเลย  ไข้ขึ้น ปวดหัวตุ๊บ ๆ ก็อดทนจนลงวินโดส์เสร็จ แล้วก็นอน  หลังจากนั้น ตื่นมาเที่ยงคืนกว่า อาการดึขึ้น ก็ลงไดรเวอร์ โปรแกรมต่อ

จากการใช้สักพัก ก็เขียนริวิว ไว้ก่อนละกัน เอาข้อดีก่อนละกันนะ
อย่างแรก มันเบา  เบามาก  เบากว่า Harddisk ตัวเดิมเยอะเลย เบาแบบรู้สึกได้  นั่นหมายถึง มันทำให้ Notebook น้ำหนักลดลงนะ  แม้จะไม่เยอะมากก็เถอะ
อย่างที่สอง เงียบ เงียบมาก เพราะเป็น solid state นั่นเอง  มันถึงมันไม่มีจานหมุนไง ไม่ต้องมีเสียงดัง แกร่ก ๆ แบบ Harrdisk ตัวเก่า ยังดี ที่มีไฟกระพริบ บอกสถานะการทำงาน ไม่งั้นคงไม่รู้ว่าทำอยู่
อย่างที่สาม นี่ความเร็วเลย  เร็วกว่าเดิมแบบเห็นได้ชัด  คือมันไม่ได้ทำให้ CPU เร็วขึ้นนะ แต่การอ่าน การเขียน นี่เร็วขึ้นแบบรู้สึกได้ ใช้งานโปรแกรม ต่าง ๆ นี่ไหลลื่นขึ้นเยอะ  อย่างกะได้คอมใหม่  เปลี่ยนได้เปลี่ยนเลยแนะนำ

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

อย่างที่สอง SSD ก็เหมือนพวก Thumbdrive หรือ USB Drive นั่นแหละ คือบทจะเสีย มันก็เสียไปเลยไง  อย่าง Harddisk แบบเก่า เวลามันจะเสียมันจมีสัญญาเตือนเช่น จานหมุนช้าลง มีเสียงดัง แต่ SSD เนี่ย มันเงียบไง ใช้เสียงบอกอาการไม่ได้ อายุการใช้งานมันคืออัตราการเขียน คือถ้ามีการเขียนบ่อยมาก ๆ  นั่นหมายความว่ามันจะไปเมื่อไหร่ก็ได้ แม้มันจะมีประกันบอกว่ากี่ปีก็เถอะ

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

ทีนี้ แก้ปัญหานี้ยังไง  อย่างแรก  ถ้าต้องการเก็บอะไรนานๆ หรือถาวร แนะนำ External Harddisk จำพวกจานหมุนครับ จะอยู่ได้นานหน่อย ทุกวันนี้ เรามี Onedrive, Dropbox, Google Drive ซึ่งทำให้การใช้งานจำพวก SSD ไม่ได้เสี่ยง ถึงขนาดที่ จะสูญเสียทุกอย่างไป  ใครยังไม่เคยลอง นี่แนะนำให้ลองเลย ดีขึ้นเห็น ๆ
App ที่ใช้ตอนนี้
Steam - Dota2
Office 365
Visual Studio Communities 2015
Firefox
Chrome
Opera
Adobe Photoshop
Windows 10 Pro
Skype
Nox Android Emulator

ใช้เนื้อที่ไปประมาณ 80 GB ก็คิดว่ายังเหลือเนื้อที่พอควรนะ ทำงานได้