Setting up TeamViewer on Ubuntu via SSH command line

  1. SSH into Ubuntu ssh user@your.ubuntu.host
  2. Download TeamViewer (32-bit) using wget or curl : wget http://download.teamviewer.com/download/teamviewer_i386.deb
  3. Install it sudo dpkg -i teamviewer_linux.deb
  4. If dependency problem occurs sudo apt-get -f install then install again sudo dpkg -i teamviewer_linux.deb
  5. sudo teamviewer setup then enter your TeamViewer account username & password
  6. sudo teamviewer daemon start to start TeamViewer daemon
  7. sudo teamviewer daemon enable to enable starting TeamViewer on boot

ครั้งแรกกับ Haskell และ Functional Programming

เมื่อวันก่อนไปเรียน Haskell For Noob ที่ SPRINT3R Geeky Base มา ด้วยความที่ช่วงนี้เห็นภาษาแนว Functional มาแรงในช่วงนี้ ประกอบกับแย่งลงทะเบียนทันเวลา เลยมาลองดู

เริ่มจากการติดตั้ง Haskell ลงบนเครื่องตัวเอง คืนก่อนวันเรียนลองหาข้อมูลไปเจอกับตัว Haskell Stack เห็นว่ามันลงสะดวกดีก็เลยใช้ตัวนี้ (ในคลาสก็ใช้เหมือนกัน) ลงในแมคคำสั่งเดียวใช้ได้เลย ใช้ Homebrew brew install haskell-stack

เนื่องจากเป็นคลาสเบื้องต้น เกือบทั้งวันเลยใช้แค่ GHC (Glasgow Haskell Compiler) เป็นคอมไพเลอร์ที่นิยมใช้กัน กับ GHCi เป็น Interpreter คล้ายๆ กับ irb ใน Ruby เอาไว้ลองศึกษาหรือลองโค้ดเล่นๆ ได้ดี
GHCi ที่มากับตัว Stack รันด้วยคำสั่ง stack ghci แล้ว โหลดไฟล์ .hs ด้วยคำสั่ง :load filename.hs ในคลาสที่เรียนนี้จะใช้วิธีแก้ไฟล์ .hs แล้วใน GHCi ก็รีโหลดด้วยคำสั่ง :reload ให้คอมไพล์ตัวไฟล์เข้ามาใหม่เพื่อรันคำสั่งแต่ละ Function ว่าใช้งานได้ถูกต้องหรือไม่

สิ่งที่ได้จากคลาสนี้ :

  • เข้าใจคำว่า Functional Programming มากขึ้นเยอะ จากตอนที้เรียน Prolog สมัยมหาลัยฯ แล้วแทบไม่เข้าใจว่าทำไม Paradigm มันแปลกๆ และดูใช้งานยากจังเลย
  • รื้อฟื้นการเขียน Recursive Function ที่แทบไม่ได้ใช้เลยตอนเขียนเว็บ
  • ที่มาของ map, reduce ที่เห็นในภาษาอื่นๆ ก็เป็น Functional นั่นเอง
  • เหตุผลที่ Functional Programming มาเริ่มฮิตเมื่อไม่นานมานี้ คือเรื่องของประสิทธิภาพในการคำนวนที่สูงขึ้นกว่าแต่ก่อน และ Concurrency Programming
  • Currying ไม่ได้เกี่ยวกับแกงกะหรี่!
  • Code ที่เขียน, Lecture ที่จด

สุดท้ายนี้ขอขอบคุณ @iporsut ที่เปิดโลก Functional Programming ให้ เพื่อนๆ ที่ร่วมเรียนร่วมแชร์ความรู้กัน และ SPRINT3R สำหรับสถานที่ครับ