Thursday, July 04, 2019

Asus ROG Zephyrus M GU502

วันนี้ที่งาน Commart Joy ณ Bitec บางนา ตั้งใจจะไปซื้อ Laptop มาใช้งาน โดยที่มองไว้เป็น Asus ROG Zephyrus M GU502 เป้าหมายคืออยากได้ Laptop ตัวใหม่ที่ไม่ใช้ MacOS มาใช้

  • ตัดต่อ video ในหลายๆโอกาส
  • เขียนโปรแกรม และรัน VM หลายๆตัวพร้อมกัน
  • ต้องมีการ์ดจอที่รอรับ HEVC เนื่องจากใช้ Gopro 7
  • Ram 16 GB
  • HDD SSD 512GB
  • หนักไม่เกิน 2 kg
  • แถม Windows
  • ต้องดูดี
จากจุดประสงค์ที่ตั้งไว้ถึงแม้จะไม่ใช่คนเล่นเกมส์ก็ต้องมองหา Gaming Notebook เพราะมี performance ดีสุดในเวลานี้ และสุดท้ายก็มาตกลงใจกับ Asus Zephyrus M GU502GU-AZ047T โดยก่อนจะเลือกก็ลังเลอยู่ระหว่าง M GU502 กับ S GX502GV-AZ035T ราคาตามป้ายต่างกัน 10,000 เลยเนื่องจากการ์ดจอเป็นสำคัญ

สุดท้ายเลือก M GU502 เนื่องจากคิดว่าไม่ต้องการการ์ดจอขนาด Geforce RTX 2060 GDDR6 6GB ที่มากับ S GX502 แค่ GTX 1660Ti GDDR6 6GB ที่มากับ M GU502 ก็โอเคแล้วประหยัดไปอีก 10,000 บาทเลย เพราะใน brochure ระบุแรม 16GB เท่าๆกัน

แต่...ก็แอบสงสัยว่าที่ Advice ทำไมยืนยันว่า M GU502 ตัวนี้มากับแรม 16GB ในขณะที่ร้าน JIB และร้านอื่นๆระบุว่าได้แค่ 8GB แน่นอนซื้อกับ Advice สิครับรอไร พร้อม confirm จำนวนแรมว่า 16GB นะ





เนื่องจากไปวันแรกของงานและเช้าด้วย รอไปครับ stock ของ Advice ยังจัดไม่เสร็จเลย จ่ายเงินประมาณ 11.45 นั่งรอตั้งแต่ไม่มีคนรอคิวจนคนรอเต็ม 12.45 แล้วก็ยังไม่ได้ น้องฝึกงานผู้เฝ้าประตูหน้า stock ก็ไม่กล้าจัดการกับปัญหา เลยบอกว่าไปเรียกหัวหน้ามาน้อย พี่จะฝากเบอร์ไว้ได้ของแล้วโทรมานะ เดินวนในงานไปเกือบชั่วโมงกลับมา เหมือนของจะได้แล้ว แต่ทำไมไม่โทรมาแจ้งน้าา ใจร้ายจัง

โอเคร ได้ของแล้วไปตรวจสอบกัน เปิดเครื่องปุ๊บ check ram ก่อนเลย 555 ว่าแล้วแรม 8GB จริงๆด้วย เรียกทุกคนที่เกี่ยวข้องมาคุย สุดท้ายน้อง Earth ที่ขายทราบเรื่องบอกมาแมนๆว่าผมดูแลลูกค้าคนนี้เองครับ เลยถามน้องเอาไงวะ brochure มันผิดนิด น้องบอกเดี๋ยวน้องรับผิดชอบ เพราะดูเหมือนเพื่อนๆต่างไม่ช่วยน้องรับผิดชอบแล้ว ซึ่งจริงๆผมว่าคนทำ Brochure ควรเป็นคนรับผิดชอบนะครับ ผมเลยบอกไม่เป็นไรเดี๋ยวผมซื้อเพิ่มเอง ไม่งั้นน้องทำงานทั้งวันจะได้อะไร

สุดท้ายซื้อแรม HyperX อีก 8GB มาใส่ในราคา 1,430 บาท ดีนะที่ M GU502 มี slot ว่างให้ใส่เพิ่มไม่ต้องทิ้งแรม แต่เซ็งตรงที่ต้องเปิดเครื่อง

ระหว่างที่นั่งรอก็เจอเพื่อนร่วมชะตากรรมครับ โดนเหมือนกันเลย กะว่าจะได้แรม 16GB สุดท้ายเปิดมาเป็น 16GB ทำไรไม่ได้ต้องซื้อเพิ่มตามระเบียบ

งานนี้บอกเลยว่าคนทำ Brochure พลาด แล้วเจ้า Brochure นี้ใช้กันทั้งงาน ไม่ใช่แค่ Advice คนทำน่าจะรับผิดชอบหน่อยนะครับ 

ปล.เนื่องจากผมใช้ Macbook Pro 15-inch 2016 อยู่เลยขออนุญาติถ่ายรูปเปรียบเทียบให้ดูนะครับ พอดีไม่มีเครื่องชั่ง เฉพาะเครื่องผมลองยังดูต่างกันไม่มาก แต่รู้สึก












Friday, May 24, 2019

Samsung Galaxy S9 Plus not recognised external mic


เนื่องจากมีความต้องการที่จะทำ Vlog แต่พบว่า microphone ที่ติดมากับมือถือไม่สามารถรับเสียงผู้พูดจากระยะไกลได้ และยิ่งถ้ามีสภาพแวดล้อมที่เสียงดังแล้วด้วยจะยิ่งทำให้ video ที่ได้ออกมามีไม่น่าดูไม่น่าฟังเลย จึงมีโจทย์ในการเลือกหา smartphone และ external mic ดังนี้


  • ต้องมีช่องเสียบ trrs 3.5mm เนื่องจาก microphone และ adapter ส่วนมากในตลาดจะเป็น 3.5mm
  • external mic ต้องเป็น wireless เนื่องจากพิธีกรมักจะยืนห่างจากตัวกล้องและไม่ต้องการให้มีสายรุงรัง
  • ขนาดต้องไม่ใหญ่ ราคาต้องไม่แพง :D
ในที่สุดก็เลือก Samsung S9 Plus แทนที่จะเป็น Huawei P20 Pro เนื่องจาก
  • S9 มีช่อง 3.5mm
  • เคยใช้ P10 Pro พบว่า Huawei ยังไม่เก่งเรื่อง video เลยไม่มั่นใจ
  • Huawei มีปัญหากับ external mic มาตลอด
ส่วน external mic ได้ Sony ECM-AW4 จากร้าน B&H มาเนื่องจากลดราคาพอดีและมีความสามารถโดนใจหลายอย่าง
  • มีตัวรับตัวส่ง สามารถใช้ได้ทั้งกับกล้อง DSLR และมือถือ
  • สามารถต่อกับ Lavalier mic เพื่อคุณภาพเสียงที่ดีขึ้นหรือเป็นไมค์สัมภาษณ์ได้
  • แม้ไม่ต่อกับกล้องก็สามารถนำมาใช้เป็น walkie talkie ได้ และมีหูฟังแถมมาให้ด้วย
หลังจากได้นำมาลองใช้โดยมี Rode SC7 (TRS to TRRS cable) มาเป็น cable เชื่อมระหว่าง Sony ECM-AW4 กับ S9 + พบว่า
  • ต้องมี step ในการใส่คือต้องเสียบสาย SC7 กับ S9+ ก่อนแล้วค่อยเสียบกับ AW4 ไม่งั้น S9+ จะไม่รับ external mic
  • หลังจากใช้ไป 2-3 เดือนเริ่มพบว่า video มีการหยุดถ่ายกลางคันบ่อยครั้งขึ้น ไม่ว่าจะใช้ Camera app ที่มากับเครื่อง, Open Camera, หรือ FiLMiC Pro
  • และเมื่อ update S9+ เป็น OneUI ก็ไม่สามารถใช้งานร่วมกับ AW4 ได้อีกเลย ทั้งๆที่ยังสามารถต่อกับ iPhone/iPad ได้เหมือนเดิมไม่ว่าจะใช้
    • Rode SC7
    • no brand TRS to TRRS adapter
    • no brand mic/audio to TRRS adapter
    • Saramonic SR-UC201
    • TRRS OMTP to CTIA adapter
    • เข้า safemode ของ S9+
    • and etc
  • จนทำให้หมดปัญญาที่จะต่อ S9+ กับ AW4 อีกต่อไป เปลี่ยนมาใช้ Handfree Bluetooth แทนแต่ก็ต้องใช้ร่วมกับ Cinema FV-5 เพราะ camera app อื่นๆไม่รองรับการบันทึก video โดยใช้เสียงจาก Bluetooth Mic แต่ปัญหาคือ ต้องใช้ bluetooth mic ที่มีระบบ noise cancelling เพื่อจะได้มีคุณภาพที่ดีกว่า ซึ่งราคาเหมือนกับต้องซื้อ wireless external micใหม่
  • สุดท้ายมาจบที่ BOYA BY-CIP2 TRS to TRRS adapter เห้อ เล่นเอาเหนื่อยเลย ไม่เข้าใจจริงๆว่าทำไม Android ถึงมีปัญหากับ external mic ด้วยนะ


Thursday, June 29, 2017

How IBM Watson work

หลายต่อหลายครั้งคนมักถามกันครับว่า IBM Watson คืออะไร และทำงานยังไง
ผมว่า Video นี้สามารถอธิบายให้เข้าใจได้เป็นอย่างดีเลยครับ


Wednesday, June 28, 2017

Orient.me - Failed to exec start script 'npm run start migrate'connections


ในการติดตั้ง Orient.me สำหรับ IBM Connections 6.0 นั้นถือได้ว่าเป็นส่วนใหม่ที่หลายคนอาจไม่คุ้นเคยมาก่อน เพราะ Orient.me เป็นความสามารถแรกของ Connections ที่รันอยู่บน Pink Architecture (ไว้ว่างๆจะมาเล่ารายละเอียดให้ฟังกัน)


สำหรับวันนี้เป็นเรื่องของการแก้ปัญหาการระหว่างทำการ migrate people data จาก Connections 6.0 ที่อยู่บน Blue Architecture มายัง Pink Architecture เพื่อใช้สำหรับการแสดงผลของ Orient.me กันครับ



--> หลังจากเราติดตั้ง Orient.me และ configure Redis กันไปเรียบร้อยแล้ว ขั้นตอนเกือบจะสุดท้ายก็ว่าได้คือการ เข้าไปใน  "people-datamigration-service" เพื่อรัน Node.js script เพื่อทำการดึงข้อมูลผู้ใช้จาก Connections 6.0 มายัง Orient.me ด้วยคำสั่ง 'npm run start migrate' ซึ่งควรจะไม่มีปัญหาอะไร แต่ผมดันเจอปัญหาครับ



[root@people-migrate-4029352936-2vv1q app]# npm start migrate

npm info it worked if it ends with ok

npm info using npm@3.10.8

npm info using node@v6.9.1

npm info lifecycle people-datamigration-service@0.0.1~prestart: people-datamigration-service@0.0.1

npm info lifecycle people-datamigration-service@0.0.1~start: people-datamigration-service@0.0.1



> people-datamigration-service@0.0.1 start /usr/src/app

> cross-env NODE_ENV=production node lib/server.js "migrate"



2017-06-28T04:58:59.201Z - info: [migrator] Mongo DB URL: mongodb://mongo-0.mongo:27017,mongo-1.mongo:27017,mongo-2.mongo:27017/relationshipdb?replicaSet=rs0&readPreference=primaryPreferred&wtimeoutMS=2000

2017-06-28T04:58:59.203Z - info: [migrator] Mongo DB URL: mongodb://mongo-0.mongo:27017,mongo-1.mongo:27017,mongo-2.mongo:27017/datamigrationdb?replicaSet=rs0&readPreference=primaryPreferred&wtimeoutMS=2000

2017-06-28T04:58:59.204Z - info: [migrator] Mongo DB URL: mongodb://mongo-0.mongo:27017,mongo-1.mongo:27017,mongo-2.mongo:27017/profiledb?replicaSet=rs0&readPreference=primaryPreferred&wtimeoutMS=2000

2017-06-28T04:58:59.844Z - info: [migrator] total request number: 1

2017-06-28T04:58:59.848Z - info: [populator] Start to populate URL:

--"https://wwts-con6.ibmcollabcloud.com/profiles/admin/atom/profiles.do?ps=100"



/usr/src/app/lib/utils/connApiUtil.js:183

    const links = _get__('_').concat([], jsObj.link);

                                              ^



TypeError: Cannot read property 'link' of null

    at Object.getNextLink (/usr/src/app/lib/utils/connApiUtil.js:183:47)

    at IncomingMessage.res.on (/usr/src/app/lib/service/populator.js:79:45)

    at emitNone (events.js:91:20)

    at IncomingMessage.emit (events.js:185:7)

    at endReadableNT (_stream_readable.js:974:12)

    at _combinedTickCallback (internal/process/next_tick.js:74:11)

    at process._tickCallback (internal/process/next_tick.js:98:9)



npm info lifecycle people-datamigration-service@0.0.1~start: Failed to exec start script

npm ERR! Linux 3.10.0-514.el7.x86_64

npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "start" "migrate"

npm ERR! node v6.9.1

npm ERR! npm  v3.10.8

npm ERR! code ELIFECYCLE

npm ERR! people-datamigration-service@0.0.1 start: `cross-env NODE_ENV=production node lib/server.js "migrate"`

npm ERR! Exit status 1

npm ERR! 

npm ERR! Failed at the people-datamigration-service@0.0.1 start script 'cross-env NODE_ENV=production node lib/server.js "migrate"'.

npm ERR! Make sure you have the latest version of node.js and npm installed.

npm ERR! If you do, this is most likely a problem with the people-datamigration-service package,

npm ERR! not with npm itself.

npm ERR! Tell the author that this fails on your system:

npm ERR!     cross-env NODE_ENV=production node lib/server.js "migrate"

npm ERR! You can get information on how to open an issue for this project with:

npm ERR!     npm bugs people-datamigration-service

npm ERR! Or if that isn't available, you can get their info via:

npm ERR!     npm owner ls people-datamigration-service

npm ERR! There is likely additional logging output above.



npm ERR! Please include the following file with any support request:

npm ERR!     /usr/src/app/npm-debug.log

[root@people-migrate-4029352936-2vv1q app]# ls 


--> จาก Error message ด้านบน ต้องยอมรับเลยครับว่าไม่ได้บอกอะไรเกี่ยวกับปัญหาเรื่องการเชื่อมต่อเลย แต่จะทำให้เราไป focus ที่  node.js ไม่ update ซึ่งเป็นไปไม่ได้เพราะเรา pull image มาจาก repository โดยตรง
เมื่อลองค้นคว้าข้อมูลพบว่า Ben Williams  ได้แนะนำการแก้ปัญหาในขั้นตอนการ migrate people data ไว้ใน http://www.collaborationben.com ว่าควรตรวจสอบเรื่อง connection ระหว่าง people-datamigration-service กับ Connections server และ Mongo DB (เนื่องจาก people-datamigration-service รันอยู่ใน docker จึงไม่สามารถมั่นใจได้ว่า host เข้าถึง Connections  และ Mongo ได้แล้ว people-datamigration-service จะเข้าถึงได้)

ดังนั้นผมจึงรอบทดสอบจาก


ping mongo







ping mongo-0  พบว่าไม่สามารถเชื่อมต่อได้





ping mongo-0.mongo





 ping Connections server พบว่าระบบเข้าถึง Connections server ผิดตัว เนื่องจากผมตั้งชื่อ Connections server ของผมซ้ำกับ server จริงๆ ของ IBM






 
ดังนั้นผมจึงทดลองแก้ปัญหานี้ด้วยการกำหนดค่าใน  /etc/hosts จากเดิมที่เป็น








 
โดยการ mapping ip address  เข้ากับ server name ของ Mongo และ Connections









 
และเมื่อทดลองรัน 'npm run start migrate' อีกครั้งก็สามารถ migrate data  เข้ามาได้โดยสมบูรณ์