Sunday, April 26, 2009

แนะนำ GIT

GIT เป็นระบบจัดการซอร์สโค้ด (Source Code Management) หน้าที่เดียวกันกับ CVS, SVN ทั้งหลาย หรือมีการเรียกอีกอย่างหนึ่งว่า Revision Control

โปรแกรมเมอร์หลายคน คงมีอาการยิ่งแก้ยิ่งแย่ และอยากย้อนกลับไปในจุดที่โค้ดของตัวเอง ยังใช้งานได้ดีอยู่ ระบบ Revision Control คือคำตอบ

เหตุที่ผมชอบ GIT
- ทำงานแบบ Off-line ได้ ไม่จำเป็นต้องติดต่อกับ Repository server เวลาสั่ง commit, checkout
- ไม่รกรุงรัง เหมือน SVN เพราะ GIT มีไดเรคทอรี .git มาเพียงไดเรคทอรีเดียว ต่างกับ SVN ที่สร้าง .svn ในทุกๆไดเรคทอรีของโปรเจคท์

หากสนใจ อยากทดลองใช้ ผมจะแนะนำสั้นๆ เร็วๆ ตามนี้
ผมขอข้ามขั้นตอนการติดตั้งไปก่อนนะครับ เพราะมันไม่ได้ยาก กด Next ไปเรื่อยๆ ก็เสร็จแล้ว ผมข้ามจั้นตอนการสร้างโปรเจคท์ใหม่เลยดีกว่า
เริ่มจากมองหาไดเรคทอรี ที่คุณต้องการใช้งาน GIT ผมสมมติเป็น

D:\www\project.localhost

จากนั้น เรียก GIT Shell ขึ้นมา แล้วไปยังไดเรคทอรี่โปรเจคท์ของเรา

git01-win-git-shell.

จากนั้นสั่งสร้าง Repository ด้วยคำสั่ง git init

git02-git-init 

แล้วจะมีไดเรคทอรี .git ในโปรเจคท์ของเรา

git03-git-directory 

จากนั้นลองสร้างไฟล์ขึ้นมา สมมติผมสร้างไฟล์ index.php ขึ้นมา และข้างในมีโค้ด

git04-index-code 

กลับไปที่ GIT Shell พิมพ์คำสั่ง git status

git05-git-status-st

แล้วก็จะเห็นสถานะแบบนี้
git06-git-status-result

กด q เพื่อออกจากโหมดนั้น แล้วพิมพ์คำสั่ง git add index.php
git07-git-add-index 

จากนั้น พิมคำสั่ง git commit -m 'Start repository'
git08-commit-1st

สั่ง git status ดูอีกรอบ
git09-git-status-after-commit

แล้วผมก็กลับไปแก้ไขโค้ดให้เป็นตามนี้
git10-mod-code-01

สั่ง git status อีกรอบ
git11-git-status-after-mod-code 

จะเห็นว่ามีการ modified อยู่หนึ่งไฟล์ ถ้าอยากรู้ว่า มีการเปลี่ยนแปลงอะไรบ้าง ก็สั่ง git diff และตามด้วยชื่อไฟล์ ที่ต้องการดูความแตกต่าง หากไม่ระบุ ระบบจะแสดงความแตกต่างของทุกไฟล์ที่มีการเปลี่ยนแปลง
git12-git-diff-index
จากภาพ สีแดงคือส่วนที่หายไป สีเขียวคือส่วนที่เพิ่มเข้ามา

ทดลอง commit รอบ ด้วย git add และ git commit
git13-git-commit-2nd 

*สิ่งสำคัญคือ ต้องสั่ง git add ก่อน git commit ทุกครั้ง*
ทีนี้ลองสั่ง git log เพื่อดูประวัติการ commit

git14-git-log

ถ้าอยากย้อนกลับไปยังจุดที่ commit ก่อนหน้านี้ สั่ง git checkout แล้วตามด้วย หมายเลขที่ต้องการย้อนกลับไป ตัวอย่างเช่น
git15-git-checkout

กลับไปดูที่ไฟล์ซอร์สโค้ด
git16-source-code-after-checkout

ถ้าสั่ง git log อาจจะดูยากไปนิด ลองใช้ gitk ดูครับ
git17-call-gitk

หน้าตา gitk
git18-gitk
จุดเหลือง คือจุดที่ checkout ออกมา

คงจะช่วยให้มองเห็นภาพขึ้นมาบ้างนะครับ ต้องทดลองใช้ดู ถึงจะเข้าใจและใช้เป็น

รอบหน้า ผมจะพูดต่อไปในเรื่อง Work flow การสร้าง Branch, Merge, Solve conflict

วันนี้เอาลิงค์ไปก่อนครับ

 

- ต้นฉบับ http://git-scm.com/
- GIT for Windows http://code.google.com/p/msysgit/

รวม Tutorial จากเว็บต่างๆ
- http://github.com/blog/333-easy-git
- http://www.webdesignerdepot.com/2009/03/intro-to-git-for-web-designers/
- http://book.git-scm.com/index.html
- http://peepcode.com/products/git (แบบเสียเงินนะครับ)

Wednesday, April 8, 2009

IWearYourShirt.com โอกาสเป็นของผู้ที่มีความคิดแปลกใหม่เสมอ

ยังจำ The Million Dollar Homepage กันได้มั๊ยครับ อาจจะนานไปหน่อย แต่ก็เป็นตำนานที่เล่าทีไรแล้วก็ยังทึ่งในความคิดของเค้า
คิดได้ยังไง แบ่งหน้าเว็บเพจเป็นพิกเซลย่อยๆ แล้วขายให้กับเว็บต่างๆ รวยเงินล้านไม่รู้เรื่องเลย



มาวันนี้ ผมเจอกระทาชายนายหนึ่ง หัวใสซันไลปิ้งไม่แพ้กัน


IwearYourShirt.com


เป็นใครไม่รู้ ยังไม่ได้ค้นรายละเอียดดู แต่แนวคิดของเค้าก็คือ ในปี ๒๐๐๙ นี้ เค้าจะใส่เสื้อยืดแต่ละวันไม่ซ้ำกัน ๑ วัน ๑ ตัว
และจะถ่ายรูปตัวเองลง Social Network ทุกวัน ถ่ายวิดีโอลง Youtube ทุกวัน คุยสดๆ ผ่านทาง ustream.tv ทุกวัน



แน่นอนว่าเสื้อยืดที่เค้าใส่ มันไม่ธรรมดา ต้องเป็นเสื้อยื้ดที่มีข้อความสำหรับประชาสัมพันธ์ จะเป็นเว็บไซต์อะไรก็ได้ที่คุณอยากโปรโมท ส่วนค่าบริการ ก็คิดไม่แพงครับ วันที่คุณต้องการให้นายคนนี้ใส่เสื้อยืด เป็นวันที่เืท่าไหร่ของปี ก็จ่ายไปเท่านั้น อย่างเช่นวันที่ ๑ ม.ค. ก็ราคา ๑ ยูเอสดอลลาร์ วันต่อไปก็เพิ่มขึ้นไปเรื่อยๆ ขึ้นอยู่กับว่าวันที่ต้องการให้เค้าใส่เสื้อนั้น วันสุดท้ายของปี ก็จ่าย ๓๖๕ เหรียญ
นี่ถ้าเขาสามารถขายได้ครบ ๓๖๕ วัน รายรับทั้งหมดก็จะเป็น 66,795 USD หรือราวๆ ๒.๓ ล้านบาท

แล้วใครมันจะบ้ามาซื้อวะ?

อย่าดูถูกไป เพราะขณะที่ผมเขียนบล๊อกอยู่นี้ ถูกจองไปจนถึงเดือนกันยายนแล้ว เท่ากับว่ามีเงินล้านในกระเป๋าเรียบร้อยแล้ว



เค้าไม่ธรรมดาจริงๆ

Wednesday, March 25, 2009

ชอบ GIT มากกว่า SVN

ดองบล๊อกไว้นาน ไม่ได้เขียนเลย วันนี้เอาซะหน่อย

ตอนนี้แต่ละวัน สิ่งที่ขาดไม่ได้ในการทำงานของผมคือ ต้องใช้ GIT
GIT เป็นระบบ Distributed revision control เหมือนกับ CVS, SVN ั่นแหละ
แต่มีข้อดีหลายอย่าง ที่ผมชอบมากกว่า SVN เป็นต้นว่าเราสามารถ Commit, Checkout ได้โดยไม่ต้องต่อกับ Repository server ตลอดเวลา อีกอย่างนึงคือ GIT ดูความแตกต่างของเนื้อหาภายในไฟล์ ไม่ใช่แค่วันที่เปลี่ยนแปลงเหมือน SVN

รอบหน้า จะยกตัวอย่างมากกนี้ครับ
โปรดติดตาม

Sunday, March 8, 2009

ร้อน


ฮาตาริ-ร้อน

โฆษณาฮาได้ใจมาก และถ้าคิดลึกอีกนิด จะรู้ว่าเค้าด่า

เปลี่ยนพฤติกรรมกันบ้างนะครับ ถ้าเป็นในแบบโฆษณา

Tuesday, February 24, 2009

Gfail

วันนี้ Gmail ร่วง เหตุการณ์ประวัติศาสตร์ ต้องบันทึกไว้เสียหน่อย


ผมลองค้นใน http://search.twitter.com ดู แล้วเปิดค้างไว้ราวๆ ชั่วโมงกว่า


เพื่อนร่วมชะตากรรมเยอะเหมือนกันนะ ส่วนสาเหตุ ต้องรอการชี้แจงจาก Google อีกครั้งนึง
ใครเผลอไปเตะปลั๊กหรือเปล่าเนี่ย