วันพุธที่ 27 ธันวาคม พ.ศ. 2560

ปัญหาลบ Keyboard Layout แล้วไม่ยอมหายไป

เรื่องมีอยู่ว่า ผมใช้คีย์บอร์ด Eng (us) และ Thai แต่หลังจากอัพเดทที่ผ่านมา จะมี Keyboard Layout ที่สามโผล่มา คือ Eng (Uk) ซึ่ง Layout มันใช่แบบที่ใช้ปกติ  ทำงานยากมาก  ลบออกก็ไม่ได้ ไม่มีใน Setting  แล้ว แรก ๆ ทำการลบคือ ไปเพิ่มเข้ามา แล้วลบออก มันก็จะออกไป  แต่ปิดเครื่องเปิดมา ก็กลับมาอีก  ลองดูวิธีนี้นะ

ใช้ regedit มาเช็คที่ Computer\HKEY_USERS\.DEFAULT\Keyboard Layout\Preload

จะพบว่า มีข้อมูลอยู่สามแถว (ไม่นับ Default) โดยจะพบรหัสคีย์บอร์ดดังนี้

409 - us
809 - uk
41e - th
ก็ลบที่ไม่ต้องการออก ในที่นี้คือ uk อย่าลบผิดนะ การแก้ไข registry ควรทำอย่างรอบคอบมาก ๆ
ได้ข้อมูลมาจากกระทู้ถามตอบจาก Website นี้
https://answers.microsoft.com/en-us/windows/forum/windows_10-start-winpc/cant-remove-a-keyboard-layout-in-windows-10/058acf33-16d9-47f4-a24b-245b8823d90e
ซึ่งจะมีวิธีป้องกันการแก้ไขข้อมูล Layout Keyboard ด้วยครับ

หลังจาก Update มาเป็น Version Build 17134 ปัญหานี้ ก็กลับมาอีกครั้ง แถมรุนแรงกว่าเก่าตรงลบออกไม่ได้ด้วย  ส่วนวิธีแก้  ผมเตรียมเอาไว้แล้วครับ ซึ่งเบื้องต้นคือ ต้องย้อนเวอร์ชั่นกลับไปก่อน เพื่อทำการ Remove ภาษาที่ไม่ใช่ออก ให้เหลือเพียงสองภาษาหลักที่ใช้ ก่อนทำการอัพเดทครับ ที่โพสต์นี้

วันพุธที่ 25 ตุลาคม พ.ศ. 2560

การ Select แบบจับคู่ โดยยกเว้นตัวเอง

เช่น ข้อมูล มี A, B, C
ต้องการจับคู่โดยยกเว้นตัวเอง

select t1.txt, t2.txt 
from test as t1
join test t2 on t2.txt > t1.txt


วันพุธที่ 13 กันยายน พ.ศ. 2560

Oracle Manage DB

เครื่องหมาย ไม่เท่ากับ
<>
!=
^=

character set
memory

user admin
sys
system
dbsnmp
sysman

ตั้ง Memory และ Character set

Choose from the list of character sets :
TH8TISASCII - Thai Industrial Standard 620-2533-ASCII

Username : sys
password : xxx

Connection Type Basic Role SYSDBA
Hostname : localhost
Port : 1521
SID : xxxdb

ex.
login by sys in sqlDeveloper
grant read, write on directory data_pump_dir to [hr];

// set for use with DB
set ORACLE_SID=xxxx

// and use
expdp hr/hr directory=data_pump_dir

// In New DB by sys do this
grant connect, resource to [newuser] identified by [newuserpwd];
grant read,write on directory data_pump_dir2 to [newuser];

set ORACLE_SID=[newDB]

ใช้ DBA Tools สร้าง Tablespaces
Name:

FILE_SPECIFICATION1 NAME:"EXAMPLE01.DBF"
File Size: 100
checkAuto Extend On

impdp [newuser]/[newuserpwd] directory_pump_dir2 remap_schema=[olduser]:[newuser]

// give dba to user

grant dba to hr;

select * from v$session

--auto backup--
create bat file for windows

set oracle_sid=orcl
expdp hr/hr directory=data_pump_dir dumpfile=exp_file_%date:~10,4%_%date:~7,2%_%date:~4,2%.dmp logfile=exp_file_%date:~10,4%_%date:~7,2%_%date:~4,2%.log reuse_dumpfiles=y

-- for test import or check whatever in dmp file --
impdp hr/hr directory=data_pump_dir dumpfile=EXPDATE.DMP SQLFILE=sql.txt

วันอังคารที่ 5 กันยายน พ.ศ. 2560

การตั้ง SSL โดยใน Let's Encrypt ใน Windows 2012

Download ไฟล์ได้จาก

https://github.com/Lone-Coder/letsencrypt-win-simple/releases

วิธีการใช้งาน ดูได้ที่

https://weblog.west-wind.com/posts/2016/feb/22/using-lets-encrypt-with-iis-on-windows

ยังไม่อัพเดทเพิ่มเติม เพราะ domain จะต้องต่อออก Internet ได้ โดยสามารถเข้าจากภายนอกได้ ยังไม่สามารถทำการ Test ได้ครับ

วันจันทร์ที่ 20 กุมภาพันธ์ พ.ศ. 2560

favicon

เว็บนี้เลย สำหรับทำ favicon ได้ทั้งเว็ปไซท์และแอพเลยทีเดียว

http://realfavicongenerator.net/

วันพุธที่ 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(); ?>

ได้