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

หน้าตาคล้าย 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)
ผมอยากจะเอาภาพบางภาพไปแชร์ในที่สาธารณะ เช่น คราวนี้ ไปซื้อของจากเวบไซต์ Aliexpress มา จะนำภาพสินค้าขึ้นไปในระบบเขา เพราะเราจะได้คะแนนเวลาเราซื้อ และเวลาเราเอาภาพสินค้าขึ้นไป เหมือนเป็นการรีวิวสินค้ากลายๆ ภาพถูกแชร์แบบสาธารณะเลยเป็นห่วงเรื่องความเป็นส่วนตัว (privacy) ต้องหาวิธีลบข้อมูล EXIF ข้างต้น
วันเสาร์, กรกฎาคม 09, 2559
DIY แท่นวาง Macbook และตัวขยายพื้นที่โต๊ะทำงาน จากร้าน Daiso (Daiso hack; Not an Ikea hacks)
วันศุกร์, มิถุนายน 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

เราจะใช้ 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
สร้าง folder กันก่อน
$ mkdir ~/Oracle
$ 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
$ cd ~/Oracle/instantclient_12_1
$ ln -s libclntsh.dylib.12.1 libclntsh.dylib
$ ln -s libocci.dylib.12.1 libocci.dylib
ตรวจสอบก่อนว่ามีอะไรอยู่ในตัวแปร PATH
$ echo $PATH
/usr/local/sbin:/opt/subversion/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
$ 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:
วันศุกร์, มิถุนายน 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
วันจันทร์, พฤษภาคม 30, 2559
Fixed cannot access Tomcat port 8080 on 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 ;)
วันอังคาร, พฤษภาคม 24, 2559
เล่นเลโก้จีน ชุด mini street Mobile Shop & Coffee Shop | Playing Chinese's bricks "mini street"
เราเล่นต่อเจ้าสองร้านนี้กัน
วันเสาร์, พฤษภาคม 14, 2559
มารู้จัก โนวลิ่ง (Knolling) ศิลปการจัดวางข้าวของอันน่าทึ่ง
มารู้จัก โนวลิ่ง (Knolling) ศิลปการจัดวางข้าวของอันน่าทึ่ง
มันเนื่องมาจากเมื่อคืนก่อนเปิดไปเจอ รายการของ Adams Savage อดีตพิธีกรรายการชื่อดัง Myth Buster ทาง Discovery Channel เค้ามาต่อ LEGO custom made ชุดนึงซึ่งต้องใช้ชิ้นส่วนทั้งหมด 1300 กว่าชิ้น ซึ่งมันเยอะมาก
พิธีกรทั้งสองคนจึงพูดกันว่าขั้นตอนแรกจะต้องทำ”โนวลิ่ง”ก่อน !? คุณอดัมเค้าก็อธิบายคร่าวๆอยู่ เหมือนกัน แต่มันยังสงสัยอยู่ เลยต้องไปค้นต่อ...

วันศุกร์, พฤษภาคม 06, 2559
วิธีใช้ Meterial Design icon ในโปรเจค Ionic framework 2| Howto use Material Design icons in Ionic framework 2 project

วิธีที่นำเสนอนี้เป็นแค่วิธีหนึ่ง จากหลายๆวิธี ที่จะทำให้แอพ 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

เมื่อไม่นานนี้เอง มีโอกาสได้เปิดฝาเครื่อง macbook 2 เครื่อง เพื่อถอด SSD drive จากเครื่องนึง ไปยังอีกเครื่องนึง แล้วเลยไปสังเกตเห็นว่าแบตเตอรี่มันปูดแล้ว เป็นภาพที่น่ากลัว..แต่ไม่ได้ถ่ายภาพไว้
วันพุธ, มีนาคม 23, 2559
ป้องกัน SSH server จากการโจมตี Brute Force | HOWTO Hardening SSH server
โชคดี 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 แล้วมันก็หมุนวนไปวนมาอยู่อย่างนั้น หลังจากทดลองทำสำเร็จแล้ว เลยมาบันทึกไว้หน่อย




















