กุมภาพันธ์ 2017

Electron Framework เริ่มต้นการสร้างโปรเจค Hello World

บทความนี้จะพามาทำ Desktop App ด้วย Javascript , HTML คุณฟังไม่ผิดหรอก Javascript สามารถใช้พัฒนาได้จริง ๆ

การที่เราจะพัฒนา App ที่ Run ได้บน Desktop นั้นคงจะจินตณาการไปว่าต้องเขียนด้วย C/C++, VB, .NET, Java หรือ Objective-C/Swift ได้เท่านั้น แต่สำหรับยุคปัจจุบันเทคโนโลยีบนโลกเปลี่ยนไปไวมาก Web Application ที่ถือว่าได้รับความนิยมมากในปัจจุบันก็ยังคงหนีไม่พ้นการนำ Javascript เข้ามาช่วยเพิ่มขีดความสามารถของ Application นั้นให้ทำงานได้อย่างมีประสิทธิภาพ Javascript ที่ต้องบอกว่าความสามารถครอบจักรวาลจริง ๆ จึงมีคนคิดค้นให้ Javascript Language นี้สามารถนำมาใช้พัฒนา Desktop Application ได้อย่างไม่น่าเชื่อ




เครื่องมือยอดฮิตในปัจจุบันอย่าง Atom Editor ,VSCode Editor นั้นก็ถูกพัฒนามาจาก Electron Framework ด้วยกันทั้งนั้น

เริ่มต้นการเขียนโปรแกรมเพื่อให้แสดง Hello World

เพราะด้วยว่า การติดตั้ง Electron นั้นจำต้องทำผ่านทาง npm ของ NodeJS จึงอยากให้ติดตั้ง NodeJS ที่เครื่องคอมพิวเตอร์กันก่อนให้เรียบร้อย

หลังจากที่ได้ติดตั้ง NodeJS เป็นที่เรียบร้อยแล้วให้ทำการ install Package Electron แบบ Global ในเครื่องของเราด้วยคำสั่ง

npm install -g electron -prebuilt

รอจนกว่าจะติดตั้งเสร็จ (อาจจะใช้เวลานานสักหน่อย)

หลังจากติดตั้งสำเร็จให้ตรวจสอบ Electron Version เพื่อเช็คว่าติดตั้งเรียบร้อยดี ไม่มีปัญหา

electron --version

ต่อไปจะมาทำการสร้าง App Hello World กัน

สร้าง Directory ชื่อ App มาก่อนเพื่อเก็บโค๊ดของเราจากนั้นสร้างไฟล์ index.html ,main.js ขึ้นมา พร้อมใส่โค๊ดไปตามนี้

ไฟล์ index.html

<!DOCTYPE>
<html>

<head>
    <meta charset="utf-8">
    <title>App Electron By Poolsawat</title>
</head>

<body>
    <h1>Hello World</h1>
</body>

</html>




ไฟล์ main.js

const { app, BrowserWindow } = require('electron')
const url = require('url')
const path = require('path')

let win

app.on('ready', function() {
    win = new BrowserWindow({ width: 800, height: 600 })
    win.loadURL(url.format({
        pathname: path.join(__dirname, 'index.html'),
        protocol: 'file',
        slashes: true
    }))
})

ต่อไปทำการสั่งให้ Application Hello World ทำงานได้โดยการ Run ผ่าน Electron Command

electron main.js

สั่งงานเปิด-ปิดไฟ ด้วย Board ESP8266 NodeMCU v.3

สั่งงานเปิด-ปิดไฟ ด้วย Board ESP8266 NodeMCU v.3

กระแส IOT มาแรงมาก ได้ยินแบบนี้ก็ต้องเริ่มมองหาอุปกรณ์มาเล่นบ้าง

สำหรับมือใหม่ก็ต้องมองหาชุดอุปกรณ์ง่าย ๆ ราคาถูกมาลองเล่นกันก่อน

ผมเองก็เป็นมือใหม่ในเรื่องนี้ เริ่มต้นก็ต้องศึกษาหาข้อมูลก่อนไปเจอ ESP8266 NodeMCU

คิดว่ามัน่าจะดี ข้อดีของบอร์ดนี้คือ มี WIFI ในตัว

อุปกรณ์ที่ต้องเตรียม

  • NodeMCU (ตามตัวอย่างนี้จะใช้ Version 3)
  • สายไฟ จัมเปอร์ Jumper Wire M-F 20 cm 2 เส้น
  • Breadboard 840 holes
  • หลอด LED
  • สาย USB 2.0
  • Computer ที่ติดตั้งโปรแกรม Arduino IDE เรียบร้อยแล้ว (Download ได้ที่นี่)
    1. ขั้นแรกเปิด arduino IDE ขึ้นมาไปที่เมนู File -> Preferrence
    2. ช่องให้ใส่ “http://arduino.esp8266.com/stable/package_esp8266com_index.json” เข้าไปกด OK
    3. ไปที่เมนู Tools > Board > Boards Manager…
      1. พิมพ์คำว่า 8266 แล้วกด Install รอจนกว่าจะเสร็จ
      2. ติดตั้งเสร็จตรวจสอบ Boards ESP8266 ว่าจะแสดงดังภาพ
        •  
    4. เริ่มการเขียนโปรแกรมควลคุมให้ไฟ เปิด ปิด เบื้องต้น lab นี้ตัว arduino ide จะมีเตรียมไว้ให้แล้วให้เราเลือก File > Example > Basic > Blink
      •  
      • int led = D4;
        void setup() {
          pinMode(led, OUTPUT);     // Initialize the LED_BUILTIN pin as an output
        }
        
        // the loop function runs over and over again forever
        void loop() {
          digitalWrite(led, LOW);   // Turn the LED on (Note that LOW is the voltage level
                                            // but actually the LED is on; this is because 
                                            // it is acive low on the ESP-01)
          delay(1000);                      // Wait for a second
          digitalWrite(led, HIGH);  // Turn the LED off by making the voltage HIGH
          delay(2000);                      // Wait for two seconds (to demonstrate the active low LED)
        }
    5. ต่อสาย USB เชื่อม Computer กับ Board NodeMCU เพื่อทำการ Upload Program ที่ Complie สำเร็จ เข้าไปที่ Board NodeMCU
    6. ผลการทำงาน

แบ่งปันเรื่องราวการเข้าร่วมงาน CodeEXP งานของผู้ที่ผ่านการได้เข้าทำงานกับบริษัท Top Tech Company

Code EXP แชร์ประสบการณ์การเตรียมตัวและสัมภาษณ์งานกับ Top Tech Company

งานแบ่งปันประสบกานณ์จากผู้ที่ได้ผ่านด่านการสอบสัมภาษณ์งานบริษัทชั้นนำด้าน Technology ชั้นนำของโลก มาบอกเล่าแนวทางวิธีการก่อนการเริ่มสมัครงานกับบริษัทต่างชาติเหล่านี้ได้อย่างไร

แนวทางแรก ประเภทของวีซ่า

การเข้าไปทำงานที่ USA นั้นยากมาก โดยทาง USA ได้มีแบ่งคุณสมบัติของวีซ่าแต่ละประเภท ไว้ดังนี้

  • H-1B คือ หากท่านเดินทางไปยังสหรัฐอเมริกาเพื่อทำงานจำเป็นต้องมีวุฒิการศึกษาขั้น ต่ำปริญญาตรี และศึกษาในสาขาวิชาที่ตรงกับตำแหน่งที่ถูกว่าจ้าง
  • F-1 นักเรียนนักศึกษาที่เข้ามาเพื่อเรียนต่อในระดับปริญญาและสำเร็จการศึกษาจะได้โควต้าทำงานในประเทศ 1 ปีทันที
  • L-1 พนักงานที่ย้ายไปทำงานที่สหรัฐชั่วคราวภายใต้การจ้างงานของบริษัทที่อยู่ในเครือเดียวกัน
  • E-1/E-2 นักลงทุนเข้ามาลงทุน ( 1 ล้านเหรียญ )

แนวทาง 2 การยื่นใบสมัครผ่านเว็บไซต์

หลังจากได้ยื่นเมลล์หรือยื่นการส่งไปสมัครไปตามบริษัทต่าง ๆ เราจะรู้ได้อย่างไรว่าจะได้รับการพิรณาจากบริษัทนั้นหรือไม่โดยเบื้องต้นให้สังเกตุจากเมลล์ตอบกลับโดยสามารถจัดประเภทเมลล์เหล่านั้นได้ดังนี้

  • เมลล์ประเภทว่าส่งไปแล้วหายสาปสูญไปเลย
  • ตอบแบบปฏิเสธ
  • ประเภทแบบเชิญเข้าร่วมทำแบบทดสอบต่าง ๆ เพื่อเป็นด้านการทดสอบ

แนวทาง 3 แนะนำวิธีการไปศึกษาต่อต่างประเทศเพราะหลังจากเรียนจบ จะได้โควต้าอยู่ใน USA ต่ออีก 1 ปี

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

แนวทาง 5 เข้าร่วมการแข่งขันเพื่อเก็บประสบกาณ์ เช่น CodeJam , Facebook Hacker , Hackathon เป็นต้น

แนวทาง 6 การเข้าร่วม Contribute Open Source เข้าร่วมพัฒนา Project ตาม Github

แนวทาง 7 ให้ความสำคัญเรื่องเวลา เพราะการเข้าไปทำงานใน USA มีช่วงระยะเวลาจำกัด จึงให้คอยติดตามข่าวสารอยู่ตลอดเวลา

และเมื่อผ่านด่านการยื่นไปสมัครไปแล้ว ก็ต้องไปสู่ด่านการทดสอบต่อไป

  1. ผ่าน Recruiter
  2. Online Coding
  3. Online Coding อีกรอบ
  4. Networking
  5. Online Business
  6. Online Interview

อื่น ๆ ที่เกี่ยวข้องกับการเตรียมพร้อมเพื่อเข้าสมัครงาน

  • ภาษาอังกฤษ (สำคัญ) ของมันแน่อยู่แล้ว
  • Data Structure And Algorithm
    • Recusion
    • String
    • Time/Speed (Big O)
    • Array
    • Bit Maniputation
    • HashMap
    • Stack
    • Heap
    • DFS / BFS
    • Graph
    • Sorting
    • Insert Sort
    • Merge Sort
    • Searching
    • Binary Search
    • ฯลฯ
  • Sport programming
  • Code Forces
  • KackerLengh.com , Leetcode.com

ทิ้งท้าย 5 Key ที่จะทำให้เราประสบความสำเร็จ

  1. ตั้งเป้าหมายของเราไว้สูงเสมอ ยิ่งสูงยิ่งดี
  2. ไม่มีอะไรแก่เกินเรียน
  3. มีใจรักในสิ่งที่ทำ
  4. ซ้อม ๆ ๆ
  5. อย่ายอมแพ้