วันศุกร์, มีนาคม 03, 2560

รีวิว ปากกา iPad WRITERTOY Hybrid silver version 4.0 สี Sapphire

หา stylus มาใช้กับ ipad เล็งๆ Adonit Jot mini เอาไว้ ลองค้นคว้าตลาดทำให้ได้มาเจอเจ้า writertoy มันก็ดูเหมือน stylus จากจีนเจ้าอื่นๆ ที่ขายอยู่ใน lazada มาสะดุดในภาพที่เค้าให้หัวเปลี่ยนเยอะ และถ้าตามไปดูที่เวบไซด์ WRITERTOY จะเห็นว่าเค้ามีสตอรี่ (มีความเป็นมา ไม่ได้มาขายเฉยๆ) ทำให้เราหลงกดซื้อมาจนได้ ฮ่าๆฮ่า คนไทยต้องอุดหนุนคนไทยซะหน่อย

รีวิว case iPad mini Magnet Transparent

ไปซื้อเคสตัวนี้ที่ lazada Cool case เคสไอแพดมินิ 4 iPad mini 4 Magnet Transparent Grey Case มา

lazadaTH

หน้าตาคล้าย smart cover แล้วยังมีพลาสติก TPU กันริ้วรอยที่ด้านหลังเครื่องด้วย เมื่อได้ของมาแล้วก็ควรจะรีวิวเล็กๆน้อย เผื่อจะเป็นประโยชน์กับใครๆบ้าง

วันศุกร์, ตุลาคม 21, 2559

ดาวโหลด video จาก Udemy, Safari Online ง่ายๆด้วย youtube-dl

เคยเขียน blog รวมสูตรหรือรวมคำสั่งที่ ให้ youtube-dl ช่วยโหลดไฟล์จาก youtube เอาไว้เมื่อนานมาแล้ว ตอนนี้ก็ยังใช้ youtube-dl อยู่นะ เพราะใช้มันดาวโหลด clip ที่ตัวแอพมือถือไม่ได้อนุญาตให้โหลด offline เอาไว้ได้ เลือก best video quality ก็ได้

ปีนี้มา revisit youtube-dl เวอร์ชั่นปัจจุบันกัน มันเจ๋งมาก ทำให้ชีวิตการเรียน online สบายขึ้นอีกเย๊อะ (เสียงสูง)

วันอังคาร, ตุลาคม 11, 2559

วิธีทำให้ OSX 10.12 Sierra อ่าน/เขียน NTFS ได้

เมื่อ​ Apple ออก OS version ใหม่ เราก็ต้องมาหาวิธีทำให้มัน เขียนไฟล์ลงใน drive NTFS กันอีกครา

ในโพสนี้เราก็จะมาทำให้ macOS Sierra มันเขียน drive ที่ format เป็น NTFS ซึ่งใช้กับ Window OS เป็นหลัก วิธีที่เคยใช้กับ Yosimite หรือ El Capitan ใช้ไม่ได้กับ Sierra นะ

วันจันทร์, ตุลาคม 10, 2559

วิธีติดตั้ง macOS Sierra ลง Virtualbox

เมื่อสองสามสัปดาห์ก่อน Apple ออก OS version ใหม่สำหรับเครื่อง Mac, Macbook ปกติผมจะรีบตามอัพเดตตลอด แต่ตอนนี้ไม่รู้ทำไม ไม่มีแรงจูงใจมากพอที่จะอัพเดต OS ของ macbook ที่ตัวเองใช้ทำงานอยู่เลย

อืม...แต่ก็นึกถึง blog วิธีติดตั้ง NTFS ใน El Capitan เพื่อให้เครื่อง Mac อ่าน+เขียน disk ที่ใช้ใน windows ได้ เราจะต้องรีบเพิ่มเนื้อหาสำหรับ mac OS Sierra ซะหน่อย คิดๆว่าทำไงถึงจะเขียนได้โดยยังไม่ต้องอัพเดต OS ในเครื่องตัวเอง เลยได้มาเป็นโพสนี้

วันจันทร์, สิงหาคม 22, 2559

OAuth คืออะไร?

เค้าออกเสียง OAuth กันว่า [โอ-อ๊อด] บางคนบอกว่ามันเป็น flow ของการ login เหมือนเวลา login app ด้วย Google account บ้างก็บอกว่าเป็นอะไรที่เกี่ยวกับเรื่องความปลอดภัย (security) แล้วก็บอกได้แค่นั้นแหละ

OAuth คือ

OAuth มันไม่ใช่ API ไม่ใช่ service แต่เป็นมาตราฐานแบบเปิดเกี่ยวกับการยืนยันสิทธิ์ (Authentication) การจัดการสิทธิ์การใช้ระบบ (Authorization) ซึ่งนักพัฒนาเอามาใช้งานจริงได้ เป็นมาตราฐานที่แอพพลิเคชั่นจะใช้ติดต่อกับเครื่อง client ในแบบการเข้าระบบผ่านตัวแทนที่ปลอดภัย (secure delegated access) ...ห๊ะ มันอะไรกัน secure delegated access ลองอ่านต่อไปก่อนนะครับแล้วน่าจะเข้าใจ

OAuth ทำงานผ่าน HTTP และอุปกรณ์ที่ได้รับอนุญาต หรือทำงานผ่าน APIs, เซิฟเวอร์, แอพ ที่ได้รับอนุญาต โดยใช้สิ่งที่เรียกว่า access token [แอคเซส โทคเค่น] แทนรหัสผ่าน/พาสเวิร์ด OAuth มี 2 เวอร์ชั่น มี 1.0a กับ 2 ซึ่งใช้ด้วยกันไม่ได้เลย เสปคไม่เหมือนกัน -__- อ่าว

OAuth ทำอะไรได้

ว่ากันง่ายๆ OAuth เป็น protocol ที่รองรับ flow หรือเส้นทางในการยืนยันสิทธิ์ ทำให้มั่นใจได้ว่า ผู้ใช้คนใดๆมีสิทธิ์ที่จะทำอะไรๆได้บ้าง OAuth มันทำแค่นี้จริงๆ ไม่เกี่ยวกับเรื่องการ login เลย มันไม่ได้เกี่ยวกับเรื่องการตรวจสอบการ login หรืออะไรทำนองนั้นนะ

อ่านมาถึงตรงนี้อาจจะสงสัยว่า protocol ที่ทับศัพท์เนี่ยมันแปลว่าอะไร ในที่นี้จะหมายความประมาณว่า พิธีการ/วิธีการ

ในโพสนี้จะพูดกันถึง OAuth version 2 ก่อน

วันศุกร์, กรกฎาคม 22, 2559

Tips: ลบข้อมูลที่ฝังอยู่ในภาพถ่าย ด้วยเครื่องแม็ค Remove Exif & GPS location from your photos with Mac (OSX)

    รู้กันหรือเปล่าว่าเวลาเราถ่ายภาพด้วยกล้องดิจิตอล หรือกล้องมือถือภาพของเราจะมีข้อมูลเกี่ยวกับสถานที่ และเกี่ยวกับกล้องที่เราใช้เก็บเอาไว้ ภาษาเทคนิคเค้าเรียก EXIF

    ผมอยากจะเอาภาพบางภาพไปแชร์ในที่สาธารณะ เช่น คราวนี้ ไปซื้อของจากเวบไซต์ Aliexpress มา จะนำภาพสินค้าขึ้นไปในระบบเขา เพราะเราจะได้คะแนนเวลาเราซื้อ และเวลาเราเอาภาพสินค้าขึ้นไป เหมือนเป็นการรีวิวสินค้ากลายๆ ภาพถูกแชร์แบบสาธารณะเลยเป็นห่วงเรื่องความเป็นส่วนตัว (privacy) ต้องหาวิธีลบข้อมูล EXIF ข้างต้น

วันเสาร์, กรกฎาคม 09, 2559

DIY แท่นวาง Macbook และตัวขยายพื้นที่โต๊ะทำงาน จากร้าน Daiso (Daiso hack; Not an Ikea hacks)



    เห็นฝรั่งทางยุโรปเค้ามี Ikea hack กัน คือการเอาสินค้าของ Ikea มาดัดแปลง ไม่ได้ใช้ตามแคตตาล็อก เช่น โต๊ะกาแฟก็มีคนเอามาแขวนผนังแสดงผลงานศิลปแทน เอาตู้กับข้าวมาแปลงเป็นชั้นวางทีวี เป็นต้น

เอ๊..เราก็มีนะแต่เราซื้อของร้านไดโซะ (Daiso) ราคาประหยัด เอามาประยุกต์ใช้ในที่ทำงานเหมือนกัน 

บลอคนี้ขอนำเสนอ Daiso hack 2 อย่าง 

วันศุกร์, มิถุนายน 24, 2559

[OSX] ติดตั้ง Oracle SQLPlus (Oracle instant client) ใน Mac





ดาวโหลดไฟล์ที่ใช้ได้จาก ลิ้ง นี้
ถ้าใช้ OSX OS X El Capitan, Yosemite and Mavericks โหลด 12.1.x.x นะ เก่ากว่านั้นอาจจะใช้งานไม่ได้
สมัครสมาชิก Oracle OTN ให้เรียบร้อย แล้ว กดเลือก Accept License
Accept License
เราจะใช้ sqlplus จำเป็นต้องโหลด 2 ตัวนี้
  • Instant Client Package - Basic Lite: Smaller version of the Basic, with only English error messages and Unicode, ASCII, and Western European character set support Instantclient-basiclite-macos.x64-12.1.0.2.0.zip
  • Instant Client Package - SQLPlus: Additional libraries and executable for running SQLPlus with Instant Client instantclient-sqlplus-macos.x64-12.1.0.2.0.zip
เปิด Terminal
สร้าง folder กันก่อน
$ mkdir ~/Oracle
แตก zip 2 ไฟล์นี้ที่ดาวโหลดมาได้
$ unzip instantclient-basiclite-macos.x64-12.1.0.2.0.zip -d ~/Oracle
$ unzip instantclient-sqlplus-macos.x64-12.1.0.2.0.zip -d ~/Oracle
เปลี่ยน folder ไปที่เราเพิ่งแตก zip
$ cd ~/Oracle/instantclient_12_1
เราจะสร้าง symbolic link ให้กับ library file ตามที่ Oracle กำหนดมา
$ ln -s libclntsh.dylib.12.1 libclntsh.dylib
จำเป็นต้องใช้ OCCI lib ด้วย พิมพ์ต่อ
$ ln -s libocci.dylib.12.1 libocci.dylib
ต่อไปจะต้องเพิ่ม path เพื่อให้เราสามารถเรียกคำสั่งใน folder นี้ได้
ตรวจสอบก่อนว่ามีอะไรอยู่ในตัวแปร PATH
$ echo $PATH
/usr/local/sbin:/opt/subversion/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
ต่อไป คือคำสั่งเพิ่ม path ที่จะเรียก program โดยเอา path ที่มีอยู่เดิมมาต่อท้าย path ใหม่
$ export PATH=/Users/{siritas_s}/Oracle/instantclient_12_1:$PATH
ทดสอบเรียก ... เห็นแบบข้างล่าง แสดงว่าใช้ได้แล้ว
$ sqlplus

SQL*Plus: Release 12.1.0.2.0 Production on Fri Jun 24 16:13:38 2016

Copyright (c) 1982, 2016, Oracle.  All rights reserved.

Enter user-name:
วิธีทำจาก Oracle, เป็นภาษาอังกฤษ

วันศุกร์, มิถุนายน 10, 2559

รวมบทความเด่น จาวาสคริปต์โพรมิส และการรับมือกับ Error : Promises & Error handling Best Practices

ช่วง 2-3 เดือนนี้ได้เขียนจาวาสคริปต์จริงจังหน่อย (ทุกค่ำวันทำงานเลย) ลองเขียนแอพด้วย ionic framework 2 ซึ่งเป็น Angular 2 ด้วย พอใส่ความสามารถของแอพมากๆเข้า ก็ใช้ Promises เยอะขึ้นเรื่อยๆ เริ่มเกิด Promises hell คือโค้ดมันดูไม่ได้เลย -_-" ไม่รู้จะจัดการความยุ่งเหยิงนี้อย่างไร จึงไปค้นคว้าๆ

เหล่าเซียนจาวาสคริปต์ได้บันทึก Best practices, Promises Pattern เอาไว้พอสมควร รวบรวมไว้ดังนี้

วันพุธ, มิถุนายน 01, 2559

เล่นเลโก้จีน: Nexo Knights: King's Mech Reviewed


สุดสัปดาห์ที่ผ่านมา อยู่บ้านกับลูกชายเพียงแค่ 2 คน หาอะไรเล่นกับเขาดี ที่เสริมสร้างสมาธิซักหน่อย
คำตอบก็มาลงที่ เลโก้นี่แหละ :) คราวนี้ advance เลย หน้ากล่องเขียนว่าสำหรับ 8ขวบขึ้นไป แต่ลูกชายเรา 5ขวบ ทำได้น่า พ่อมันอยากเล่นละ :D 

กล่องที่เอามาเล่นคราวนี้คือ LEPIN no.14001 390 ชิ้น
แกะกล่องมีซองทั้งหมด 7 ซอง ก็อปปี้ของเลโก้เค้าก็ไม่ก็อปให้หมด ควรจะมีหมายเลขมาให้ด้วยนะ 

ลองเปิดๆคู่มือให้ดูสีจะเพี้ยนๆหน่อย ชุดนี้มีสีกรมท่า กับสีดำดูแทบไม่ออก 
พ่อมันชอบขั้นตอนนี้แหละ ทำ knolling 
เสร็จแล้วก็เปิดไปทีละหน้าให้ลูกชายดู พ่อก็จัดชิ้นรอเอาไว้ 
ไม่นานก็ได้ module เล็กๆมาก่อน
กล่องที่ได้มานี้เจอ defect 2 ชิ้น คือที่เสียบดาบหลังหุ่นยักษ์ มันควรจะเป็นแนวตั้ง ไม่ใช่แบบเน้..
ใกล้เสร็จละ
อ่ะแฮ่ม ...

วันจันทร์, พฤษภาคม 30, 2559

Fixed cannot access Tomcat port 8080 on AWS

Just a quick blog notes after try to deploy a demo spring-boot project on Tomcat 8 on EC2 instance (AWS)


Tomcat homepage inaccessible 


i.e. Host not found ... http://ec2-xx-yy-218-150.ap-southeast-1.compute.amazonaws.com:8080/

After execute Tomcat you might found that it cannot access via the browser; This is might because of your networks did not support IPv6 yet. So, We will do force the Tomcat to operate with IPv4 only.

Solution

- Shutdown the Tomcat

- Edit catalina.sh

Add java options JAVA_OPTS. See the code below:

...
#
#   LOGGING_MANAGER (Optional) Override Tomcat's logging manager
#                   Example (all one line)
#                   LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
# --------------------------------------------------------------------

JAVA_OPTS=" -Djava.net.preferIPv4Stack=true "

# OS specific support.  $var _must_ be set to either true or false.
cygwin=false

darwin=false
...

- Startup Tomcat; It should be accessible now ;)


Command to check if Tomcat running(binding) with IPv6 

$ netstat -ant
...
tcp6       0      0 :::8080                   :::*                    LISTEN
...

After catalina.sh modification 

$ netstat -ant
...
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN
...





วันอังคาร, พฤษภาคม 24, 2559

เล่นเลโก้จีน ชุด mini street Mobile Shop & Coffee Shop | Playing Chinese's bricks "mini street"

สุดสัปดาห์หาอะไรทำกับลูกชาย ตัวต่อเลโก้ก็เป็นความฝันในวัยเด็กของพ่อมันด้วย :) เลยซื้อมาเล่นกับลูก

เราเล่นต่อเจ้าสองร้านนี้กัน
ภาพกล่องลืมถ่าย หายืมเอาจาก google search

เรารู้จัก knolling กันแล้ว ในบลอกก่อนหน้านี้ ต้องจับมาเรียงๆซะก่อน 

เสร็จแล้ว กล่องนี้ไม่ได้ sticker มา :( ว่างๆค่อยพิมพ์ใส่ sticker มาแปะเอง

ชุดต่อมา 
มี design ร้านที่แปลกไป ผมว่าสวยกว่า HSANHE นะ

knolling กันก่อน

   
เสร็จแล้ว :) 

ชักชอบใจ ราคาไม่แพงเหมือน lego (แบบร้านก็ไม่เหมือนนะ แต่ได้แรงบันดาลใจจาก city collection เป็นแน่แท้) จะตามเก็บให้ครบ สร้างเมืองจำลอง bricks ที่บ้านดีกว่า ^^ 





วันเสาร์, พฤษภาคม 14, 2559

มารู้จัก โนวลิ่ง (Knolling) ศิลปการจัดวางข้าวของอันน่าทึ่ง

มารู้จัก โนวลิ่ง (Knolling) ศิลปการจัดวางข้าวของอันน่าทึ่ง

poster

มันเนื่องมาจากเมื่อคืนก่อนเปิดไปเจอ รายการของ Adams Savage อดีตพิธีกรรายการชื่อดัง Myth Buster ทาง Discovery Channel เค้ามาต่อ LEGO custom made ชุดนึงซึ่งต้องใช้ชิ้นส่วนทั้งหมด 1300 กว่าชิ้น ซึ่งมันเยอะมาก

พิธีกรทั้งสองคนจึงพูดกันว่าขั้นตอนแรกจะต้องทำ”โนวลิ่ง”ก่อน !? คุณอดัมเค้าก็อธิบายคร่าวๆอยู่ เหมือนกัน แต่มันยังสงสัยอยู่ เลยต้องไปค้นต่อ...

tested screenshot

วันศุกร์, พฤษภาคม 06, 2559

วิธีใช้ Meterial Design icon ในโปรเจค Ionic framework 2| Howto use Material Design icons in Ionic framework 2 project

poster

วิธีที่นำเสนอนี้เป็นแค่วิธีหนึ่ง จากหลายๆวิธี ที่จะทำให้แอพ ionic2 ของเราแสดงหรือใช้ icon ของ material design ได้

โดยเทคนิคแล้วคือการเลือกประกาศ CSS selector ให้ถูก,ให้โดนนั่นเอง

วันศุกร์, เมษายน 22, 2559

Ubuntu: วิธีปลอดภัย ในการเปลี่ยน subversion เป็น version 1.7 ขึ้นไป ในอูบุนตู 12.04 LST | Upgrade subversion (to 1.7+) on Ubuntu 12.04 the safe way

ถ้าเรา google หาวิธีอัพเกรด version ของ subversion จะเจอเยอะแยะ ส่วนนึงก็จะให้ไปเพิ่ม ppa ของ subversion เลย บ้างก็ให้ เพิ่ม repository โดยชี้ไปที่ URL ของตนเอง แต่วิธีที่จะนำเสนอนี้ดูแล้วว่ามันปลอดภัยระดับนึง ผมเลือกใช้ repository ของ Wandisco ซึ่งเค้าทำธุรกิจที่ต้องใช้ subeversion ทำมาหากิน เชื่อใจได้ระดับนึงว่า ของเค้าต้อง stable และมีการ maintenance ด้วย

วันพุธ, เมษายน 20, 2559

รู้มั้ย? เมื่อไหร่แบตเตอรี่ Macbook จะหมดอายุ | How do you know when your macbook battery is dying

poster

เมื่อไม่นานนี้เอง มีโอกาสได้เปิดฝาเครื่อง macbook 2 เครื่อง เพื่อถอด SSD drive จากเครื่องนึง ไปยังอีกเครื่องนึง แล้วเลยไปสังเกตเห็นว่าแบตเตอรี่มันปูดแล้ว เป็นภาพที่น่ากลัว..แต่ไม่ได้ถ่ายภาพไว้

วันพุธ, มีนาคม 23, 2559

ป้องกัน SSH server จากการโจมตี Brute Force | HOWTO Hardening SSH server

ทาง network admin อีเมลมาว่า firewall ของบริษัทตรวจจับการโจมตีแบบ brute force มายัง SSH server ที่เปิดให้ login ผ่าน internet ได้
โชคดี firewall ตรวจจับ เอาไว้ได้ ให้ทางผมทำอะไรหน่อยเพื่อให้มันเจาะไม่ได้ เช่น เปลี่ยน password
แต่ โชคร้าย server ตัวนึงโดนยึดไปได้ (มันเปลี่ยน root password ...ไอ่ฉิบ~) ดีว่าไม่ใช่ตัวสำคัญ และเป็น VM เลย shutdown แล้วใช้ single mode เข้าไป reset จากนั้นค้นหาทันทีว่าจะป้องกัน SSH จากการโจมตีแบบ Brute force ได้อย่างไรบ้าง

วันพุธ, มีนาคม 16, 2559

สรุปวิธี สร้างและเพิ่ม SSH key ไปใส่ใน git hosting Github, Gitlab, Bitbucket

ตอนนี้มี Git hosting มาให้เลือกใช้มากมาย ที่งานใช้งานบ่อยๆ ช่วงนี้ก็มี

2 ตัวหลังนี่ใช้บ่อยมาก เพราะให้เราสร้าง private project ได้ ไม่จำกัด (ไปจำกัดเรื่องอื่นแทน เช่น จำนวน user/repo, ขนาดของ repo)

สำหรับการใช้งาน git repository ทุกที่ข้างต้น เราจะต้องมี ssh key แลกกับ server เค้า บันทึกนี้จะเป็นขั้นตอนที่ผมทำเวลาสร้าง ssh key ซึ่งปกติเค้าก็จะทำกันครั้งเดียวแหละ เว้นเสียแต่ว่าเราจะทำ ssh key หาย ซึ่งจะทำให้เรา push source code ขึ้นไปไม่ได้

วันพุธ, มีนาคม 09, 2559

Android: ขั้นตอนการใช้ Google Drive API กับ Android app

มีเพื่อนมาขอคำแนะนำ เค้าเขียนแอพขึ้นมา มี feature หนึ่งจะเอาไฟล์ไปใส่ใน Drive ติดที่ว่าพอขึ้นหน้าจอเลือก account แล้วมันก็หมุนวนไปวนมาอยู่อย่างนั้น หลังจากทดลองทำสำเร็จแล้ว เลยมาบันทึกไว้หน่อย