ตอนนี้ได้ผันตัวเอง มาเป็น Ruby โปรแกรมเมอร์แล้ว และได้ลาจาก Java มาอย่างสวยงาม แม้ จะเศร้าใจเล็กน้อย(ที่เรียนมาไม่ได้ใช้) แต่ก็ดีใจที่ได้เจอเรื่องใหม่ๆ เจอเจ้านายใจดี ฮ่าๆ โดยรวมตอนนี้ แฮปปี้ คร๊าบ ปล. งานน่ะแฮปปี้ แต่ตื่นเช้า อ่ะ !@#$%^&* มาก...

Micropost App

Micropost App

ใครที่กำลังที่คิดจะเริ่มศึกษา ruby และ rails ทางบริษัทผมได้เคยมีโอกาสไปอบรมที่เกษตร

และได้ทำ work shop ระยะสั้น เพื่อใช้ในการอบรมไว้ด้วยเลยเอามาแจกจ่ายครับ

ในส่วนของเนื้อหา มี slide พร้อม code ของ rubyเนื้อหาทั้งหมดเป็นพื้นฐานของภาษา เข้าใจได้ไม่ยาก

ในส่วนของ workshop จะเป็นการทำ mini tweeter แบบง่ายๆ โดยใช้ Rails 3.2

ซึ่งใน workshop จะมี guide พร้อม ภาพประกอบ ทีละขั้นตอน

ซึ่งถ้ายังตามไม่ทัน เราสามารถ ดู code ต่างๆ ในแต่ละขั้นตอน บน github ได้อีกด้วย

ถ้ามีปัญหาสงสัยอะไรสามารถ โพสถามทิ้งไว้ได้เลยครับ ยินดีที่จะตอบเสมอ

ปล. อนุณาติ ให้เผยแพร่ แต่อย่าแก้ไขเนื้อหาในเอกสารต่างๆนะครับ

Categories: ทั่วไป ป้ายกำกับ:, ,

แก้ปัญหา Internet ช้า บน Ubuntu

เนื่องจากเป็นปัญหากันเยอะมาก ลงกี่ทีๆ ก็เป็น

อาการ จะเป็นทำนองว่า Internet บน Windows วิ่งปร๋อ แต่บน Ubuntu กลับช้าเยี่ยงเต่าหมอบคลาน (ช้ากว่า 10 เท่า) ซึ่งรำคาญใจของผู้ใช้ยิ่งนัก

ผมเลยเอามาโพสไว้นะครับ วิธีนี้แก้ปัญหาได้ผลทันตา สามารถใช้ได้ตั้งแต่ Ubuntu 9.04 – 11.04 (ถ้าไม่หายอีก…  เป็นที่ driver แล้วล่ะครับ)

เพียงพิมพ์ตามด้านล่างนี้

$ sudo apt-get install ethtool
$ sudo ethtool -s eth0 speed 100 duplex full autoneg on

Credit: http://ubuntuforums.org/showthread.php?t=1395866

Categories: Ubuntu ป้ายกำกับ:, , , , , ,

วิธีการลง RVM ใน Ubuntu และการติดตั้ง ruby ผ่าน rvm

RVM  นั้นติดตั้งได้ง่ายมาก บน Ubuntu นะครับ เพียงไม่กี่คำสั่ง บน terminal ก็จัดการได้แล้ว ซึ่งในที่นี้จะติดตั้งแบบ single-user นะครับ

รายละเอียดเครื่องที่ใช้ทำกิจการครั้งนี้

OS: Any version of Ubuntu

ติดตั้ง RVM

1. ลง lib ที่จำเป็นทั้งหมดก่อน กันตายกลางทางนะครับ

$ sudo apt-get install build-essential libssl-dev libreadline6-dev zlib1g-dev curl git libxslt-dev libxml2-dev

2. ลง rvm ครับ ซึ่ง จะถูกเก็บใน path $HOME

$ bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )

3. นำ โค้ดด้านล่างไปวางไว้ใน ~/.bashrc  ด้านล่างสุด (เปิดที่ Home Folder ขึ้นมา แล้วกด Ctrl + H จะพบเองครับ)

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

***หมายเหตุ RVM ตั้งแต่ version 1.8.1 ใส่ให้แล้วครับ ข้ามขั้นตอนนี้ไปได้เลย (ถ้าอยากรู้ว่า version อะไร พิมพ์ rvm -v ครับ)

4. เมื่อเสร็จแล้วให้ปิด terminal แล้วเปิดขึ้นมาใหม่ครับ แล้วพิมพ์

$ source ~/.bashrc

5. ลง ruby ครับ ในที่นี้ผมลง 1.9.2-p290 นะครับ

$ rvm install 1.9.2-p290

คำสั่ง ต่างๆ ใน rvm ครับ

เรียกดู ruby version ที่ rvm รู้จัก
$ rvm list known | less
ล้างการตั้งค่าต่างๆ รวมไปถึงแฟ้มที่เคย download มาไว้
$ rvm clean up
ลบ ruby ที่ติดตั้งไว้อยู่เดิมทิ้ง (xxx คือ เลข version ของ ruby)
$ rvm remove XXX
เลือกใช้ ruby version เป็นค่ามาตราฐาน (xxx คือ เลข version ของ ruby)
$ rvm use XXX --default

Devise gem พลังแห่ง Authentication

Devise เป็น Gem ที่ใช้สำหรับการทำ authentication ที่ดีมากๆ ตัวนึง หลังจากปลุกปล้ำมันในที่ทำงานมาได้สักพักก็พอเข้าใจมันบ้าง

ความสามารถของ devise มีตัวอย่างดังนี้

  • Database Authenticatable: encrypts password ของผู้ใช้ เมื่อเข้าสู่ระบบ โดยสามารถทำได้ 2 ทางคือ http authentication ทั่วๆไป หรือ ส่งผ่านทาง request POST Method
  • Token Authenticatable: เข้าสู่ระบบโดยใช้ authenticate token (อีกชื่อหนึงคือ “single access token”). ซึ่ง authenticate token สามารถ ส่งผ่าน request POST หรือ Query String
  • Omniauthable: ไม่เคยใช้อ่ะ
  • Confirmable: ระบบการยืนยัน account ของผู้ใช้ผ่านอีเมล์
  • Recoverable: รีเซ็ทรหัสผ่าน โดยส่งผ่านทางเมล์
  • Registerable: สมัครสมาชิก รวมไปถึง การลบ และแก้ไข ข้อมูลด้วย
  • Rememberable: การเข้าสู่ระบบค้างไว้
  • Trackable: คล้ายกับระบบ log ของการทำงานของผู้ใช้
  • Timeoutable: อายุของ session
  • Validatable: ตรวจสอบข้อมูลต่างๆของผู้ใช้ ในส่วนนี้เราสามารถแก้ไขได้ด้วย
  • Lockable: การระงับการใช้งานไอดี เมื่อ เข้าสู่ระบบแล้วกรอกรหัสผ่านผิด เป็นเวลาตามที่กำหนด และสามารถขอปลดล็อคได้เมื่อ ผ่านไประยะเวลาหนึ่งหรือการส่งเมล์เพื่อยืนยัน
  • Encryptable: เข้ารหัสของ password ให้เป็นรูปแบบอื่นเช่น AES MD5 เป็นต้น (โดย devise จะใช้การเข้ารหัสแบบ Bcrypt)

Hello Wakeup!! [@Work Place]

มิถุนายน 15, 2011 แสดงความคิดเห็น

เรื่องมันเกิดขึ้นเมื่อวานนี้เอง พอดีทำงานเสร็จหมดแล้ว

แล้วมันไม่มีอะไรทำ facebook youtube  msn ก็โดนบล็อคหมด โครตว่าง

ฟังเพลงก็ยังเบื่อ เปิดเว็บก็ไม่มีไรทำ

เลยเกิดอาการง่วงระยะสุดท้าย และได้แน่นิ่งไปในที่สุด

ไม่รู้หลับไปนานเท่าไหร่ สักพัก Will เจ้านายผมเข้ามาแตะไหล่ แล้วพูดว่า “Hello!! Wakeup!!”

 

ฮากันทั้ง ออฟฟิศ จบ…. ในหลายๆ แง่

 

ปล. ปัจจุบัน ก็ว่างนะ

Categories: ไร้สาระ

Netzke the new journey begin.

มิถุนายน 15, 2011 แสดงความคิดเห็น

ในบทความนี้เราจะทำการติดตั้งตัว netzke gem กับ rails 3.0.7

ก่อนอื่น ให้เราเพิ่ม gem ของ netzke ใน Gemfile

gem 'netzke-core', :git => "git://github.com/skozlov/netzke-core.git"
gem 'netzke-basepack', :git => "git://github.com/skozlov/netzke-basepack.git"

gem 'will_paginate', '~>3.0.pre2'

พิมพ์ bundle เพื่อทำการลง gem

>  bundle

จากนั้นให้เราโหลด ตัว Ext JS มาวางไว้ที่ public/extjs

และ FamFamFam silk icons วางไว้ที่ public/images/icons

กลับไปที่ comand line

> ln -s ~/code/extjs/ext-3.3.0 public/extjs
> ln -s ~/assets/famfamfam-silk public/images/icons

สร้าง welcome controller ขึ้นมา

> rails g controller welcome index

หลังจากนั้นเขียนเพิ่มในไฟล์ route.rb

NetzkeTaskManager::Application.routes.draw do
  netzke
  root :to => "welcome#index"
  # ...
end

ประกาศ header เพิ่ม ในไฟล์ app/controller/aplication_controller.rb

<!DOCTYPE html>
<html>
<head>
  <title>Netzke Task Manager</title>
  <%= netzke_init %>
  <%= csrf_meta_tag %>
</head>
<body>
<%= yield %>
</body>
</html>

สร้าง Model Task ขึ้นมา

rails g model Task done:boolean name:string notes:text priority:integer due:date

เราต้องการให้ ทุกTask มีค่าใน name  เราจึงไปแก้ไขในไฟล์ app/model/task.rb

class Task < ActiveRecord::Base
  validates_presence_of :name
  default_scope :conditions => {:done => false}
end

แล้วไปตั้งค่า Task ให้ done  มีค่า default เป็น false ในไฟล์ db/migrate/xxx_create_tasks.rb

t.boolean :done, :default => false

เปลี่ยน app/views/welcome/index.html.erb เป็นดังนี้

<%= netzke :tasks, :class_name => "Basepack::GridPanel", :model => "Task" %>

จากนั้น จึงรัน rails server

rails s

เราสมารถไปดูผลการรันได้ที่ http://localhost:3000/

Read more…

Categories: Netzke Gem ป้ายกำกับ:, , ,

What is Netzke?

มิถุนายน 15, 2011 แสดงความคิดเห็น

Netzke เป็น gem อีกตัวที่ถือว่า มีความสามารถในการจัดการข้อมูลในฐานข้อมูล ได้อย่างแจ่มแจ๋วทีเดียว ซึ่งเขียนจาก java script โดยใช้ ของค่าย EXT JS ซึ่งหากใครสนใจหรืออยากลองใช้ วันนี้เราจะพาไปดูตัวอย่างกัน

Netzke Task Manager

รูปร่างหน้าตาของตัว Grid Panel ใน Netzke หน้าตาก็ดูดีมีสกุลใช้ได้ทีเดียว

grid panel context menu

มี context menu ให้ใช้ด้วยในแต่ละ row

grid panel editing in form

สามารถ add edit ผ่าน form หรือจะทำแบบ in-line เลยก็ทำได้สบายๆ

grid panel validations

รองรับการทำ validation จาก model ด้วย

grid panel filtering by date

grid panel filtering by priority

สามารถ sort หรือ filter ได้ด้วย ซึ่งทำจาก server side

ยังมีคุณสมบัติอื่นๆที่ยังไม่พูดถึงอีกเยอะ เช่น

- สามารถแสดงผลตามประเภทหรือ ชนิดของข้อมูลได้ เช่น ถ้าเป็น boolean จะเแสดงเป็น check box
- รองรับ การแสดงผลของตารางแบบ one-to-many relationship
- ฟอร์มค้นหาที่มีเงื่อนไข ตามชนิดของข้อมูลในแต่ละฟิลด์

หลังจากที่ดูตัวอย่างแล้ว ยังไม่จุใจ มี live demo ให้ดูด้วย กดเลย http://demo.netzke.org/#

หรือใคร อยากศึกษาด้วยตัวเองก็ http://blog.writelesscode.com/  หรือ http://netzke.org/

Read more…

Categories: Netzke Gem ป้ายกำกับ:, , , ,
ติดตาม

Get every new post delivered to your Inbox.