วันพุธที่ 2 พฤษภาคม พ.ศ. 2561

ปัญหาไม่สามารถลบ (Remove) Keyboard Layout ใน Windows 10 Build 17134 ได้

ปกติ ผมจะใช้อยู่สองภาษา คือ English (US) กับ Thai แต่พอ Update ทีไร จะได้ English (UK) ติดมาด้วยทุกที  ซึ่งปกติ ก็ลบออกได้นะ  แต่รอบนี้ลบออกไม่ได้ เนื่องจากปุ่ม Remove มีลักษณะเป็นสีเทา (Gray) ทำให้กดไม่ได้

ซึ่งเคยทำให้เหลือแค่ English (UK) กับ Thai ได้ แต่มีปัญหาอีกว่า เวลาใช้พวก Single quote หรือ Double quote ตัว English (UK) มันจะแปลก ๆ คือมันจะไม่ Display ขึ้นมาทันที ต้องกดอีกที ถึงจะเห็น  ก็ค่อนข้างจะสร้างความรำคาญมากกว่าความสะดวก เลยต้องพยายามเอาภาษาหรือ Layout นี้ออกไป

เอาละพูดถึงการย้อนเวอร์ชั่นก่อน
ซึ่งจะอยู่ในหัวข้อ Recovery (ใช้ Search หาเอาได้ครับ หลังจากอัพเดท หากมีปัญหานี้)
โดยเราจะใช้หัวข้อ Go back to the previous version of Windows 10 เพื่อทำการย้อนเวอร์ชั่น
หลังจากนั้น เราจะใช้ language ทำการ Remove ทุกภาษาที่ไม่ใช้ออกไป แล้วทำการตรวจสอบภาษาด้วยคำสั่งดังนี้
เปิด Command Prompt ด้วยสิทธิ์ ของ Administrator และใช้คำสั่ง
dism /online /get-intl

ซึ่งสาระสำคัญ จะอยู่ที่ Default system UI Language และ Language Packs
ซึ่งเดิม OS ผมจะใช้ en-GB เป็น Default system UI language ทำให้การอัพเดททุกครั้ง จะได้ภาษาและ Keyboard Layout English (UK) ติดมาเสมอเลย

แต่ทั้งนี้ เราสามารถเปลี่ยน Default system UI language ได้ครับ เพียงแต่ จะต้องลง Language Pack เอาไว้ก่อนด้วย ถึงจะเปลี่ยนได้ เพราะมีผลกระทบกับ Display language  ซึ่งหลังจากที่ผมพยายามจะติดตั้ง Language pack ก็ไม่สามารถทำได้ จะขึ้นข้อความ A language pack isn't available ตลอดเลย

แต่ใน build 16299 - 1709 นั้นสามารถโหลด language pack เพื่อมาติดตั้งได้เอง ที่นี่

English (US) 64 bit
Thai 64 bit

ทั้งนี้ ใครที่ต้องการภาษาอื่น ก็ไปที่ https://www.itechtics.com/windows-10-version-1709-language-packs-direct-download-links ได้เลยครับ มีให้โหลดครบเลย ทั้ง 32bit และ 64bit

ตัวไฟล์ที่ได้มาจะเป็น cab files ซึ่งสามารถติดตั้งด้วยคำสั่ง lpksetup ใน Command prompt ครับ

พอติดตั้งเสร็จแล้ว จะได้ Display language มาด้วย ก็ให้เราปรับปรุงระบบของเราให้เหลือแต่ภาษาที่จะใช้ครับ โดยเช็คได้จาก Copy settings ครับ ดังภาพ

ซึ่งจะต้องเหลือแค่ภาษาที่เราใช้จริง ๆ หลังจากตั้งค่าเรียบร้อยแล้ว ก็ทำการเปลี่ยน Default system language ด้วย Regedit กันครับ
โดยพุ่งเป้าไปที่
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Nls\Language
โดยให้มองหาค่า Default และ InstallLanguage ครับ
ซึ่งอ้างอิงจาก โพสต์ที่แล้ว ค่า 0809 จะเป็นค่า English - UK ครับ ก็ทำการเปลี่ยนค่า Default ให้เป็น 0409 ซึ่งเป็นของ English - US แล้ว Restart เครื่องครับ

เท่านี้ ก็เรียบร้อยสำหรับการเตรียมพร้อมเครื่องเพื่อการอัพเดท โดยไม่มี Keyboard Layout อื่นมากวนใจแล้วครับ

ทังนี้ทั้งนั้นต้องขอบคุณต้นทาง ที่ทำให้ผมหาทางแก้ไขปัญหานี้ได้สำเร็จ คือที่
https://www.tenforums.com/tutorials/30656-see-default-system-language-windows-10-a.html
ครับ

วันพุธที่ 3 มกราคม พ.ศ. 2561

การใช้งาน NLog ใน Core 2.0

1. ใช้ NuGet ลง "NLog.Web.AspNetCore" Version 4.5.x ขึ้นไป (ในตอนนี้ยังเป็นตัว Prerelease อยู่)
2. สร้างไฟล์ "nlog.config" ใน Root folder project.
แล้วใส่ข้อมูลตามนี้

<?xml version="1.0" encoding="utf-8"?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      autoReload="true"
      internalLogLevel="info"
      internalLogFile="c:\temp\internal-nlog.txt">


  <!-- the targets to write to -->
  <targets>
    <!-- write logs to file  -->
    <target xsi:type="File" name="allfile" fileName="c:\temp\nlog-all-${shortdate}.log"
            layout="${longdate}|${event-properties:item=EventId.Id}|${uppercase:${level}}|${logger}|${message} ${exception}" />

    <!-- another file log, only own logs. Uses some ASP.NET core renderers -->
    <target xsi:type="File" name="ownFile-web" fileName="c:\temp\nlog-own-${shortdate}.log"
            layout="${longdate}|${event-properties:item=EventId.Id}|${uppercase:${level}}|${logger}|${message} ${exception}|url: ${aspnet-request-url}|action: ${aspnet-mvc-action}" />

    <!-- write to the void aka just remove -->
    <target xsi:type="Null" name="blackhole" />
  </targets>

  <!-- rules to map from logger name to target -->
  <rules>
    <!--All logs, including from Microsoft-->
    <logger name="*" minlevel="Trace" writeTo="allfile" />

    <!--Skip Microsoft logs and so log only own logs-->
    <logger name="Microsoft.*" minlevel="Trace" writeTo="blackhole" final="true" />
    <logger name="*" minlevel="Trace" writeTo="ownFile-web" />
  </rules>
</nlog>

3. แก้ไข Program.cs ใน Root ในส่วนของ BuildWebHost โดยเพิ่ม UseNLog() เข้าไป
เป็น

        public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .UseNLog() // NLog: setup NLog for Dependency injection
                .Build();

โดยใช้ using NLog.Web;

4. สำหรับการใช้งานใน Controller ก็ทำ injection โดยใช้รูปแบบ ดัง Code ต่อไปนี้

using Microsoft.Extensions.Logging;

namespace xxxHome.Controllers
{
    public class HomeController : Controller
   {
        private readonly ILogger<HomeController> _logger;
     
        public HomeController(ILogger<HomeController> logger)
        {
            _logger = logger;
        }

        public IActionResult Index()
        {
            _logger.LogInformation("Index page says hello");
            return View();
        }
    }
}




ref :// https://github.com/NLog/NLog.Web/wiki/Getting-started-with-ASP.NET-Core-2

วันพุธที่ 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/