Archive for April, 2009

เข้าใจกับ jQuery Ajax Cross Domain

หลังจากที่ผมใช้ jQuery เป็น Javascript Framework หลักมาตลอดตอนนี้ ผมพึงได้ทำอะไรใหม่ๆ มากกว่าที่ผมทำอยู่เป็นประจำเช่น การทำ Web Service ที่ Javascript จะต้องเป็นคนเรียก วันนี้ผมก็พึุงได้รู้ว่าจริงๆแล้ว jQuery Ajax ไม่ได้โหลด Cross Domain ได้ทุก function หลังจากลอง Search ดูก็พึุงรู้ว่าจริงๆแล้วตอนนี้มีแค่

  • getJSON
  • getScript
  • $.ajax

เท่านั้นที่ทำได้ โดย $.ajax ก็คือการ setup ให้ datatype เป็น JSONP  หรือไม่ก็ Script เท่านั้นถึงทำได้ ดังนั้นเวลาเรียกให้ควร check เรื่องพวกนี้เป็นพิเศษ เพราะการทำภายใต้ domain เดียวกันนั้น คุณสามารถใช้พวก $.get , $.post ได้ตามสะดวก แต่พอจะทำ cross domain แล้วนั้นกลับทำไม่ได้ ดังนั้น ถ้าคิดจะทำ Web Service ที่ Javascript สามารถเรียกได้ ควรทดสอบด้วย getJSON หรือ getScript เท่านั้นครับ

ส่วนถ้าใช้กับพวก Server Side Script จะมีวิธีที่เรียกว่า Proxy ซึ่งทำให้สะดวกในการทำงาน ซึ่งเราสามารถใช้ได้ทุก Ajax เช่น $.get $.post ก็ใช้ได้หมด โดยมีตัวอย่างที่ทำเข้าใจอย่างมากของฝรั่งเขา ดูได้ที่นี้เลยครับ
http://jquery-howto.blogspot.com/2009/04/cross-domain-ajax-querying-with-jquery.html

ปล. สำหรับลิงค์ที่้ให้ไป อ่าน comment ด้วยจะได้เห็นทางเลือกที่เจ๋งๆอีกนิดหน่อย

Junior Webmaster Camp สอน Wordpress เบื้องต้นฟรี ! สำหรับ ม.ปลายเท่านั้น

เนื่องจากผมเป็นเด็ก YWC แล้ววันนี้เลยเอาข่าวงาน Junior Webmaster Camp 2009 ค่ายนี้รับ 40 คน โดยผู้สมัครจะต้องเป็นเด็ก ม.ปลาย ตั้งแต่ขึ้นชั้น ม 4 จนกระทั่งจบ ม.6 เท่านั้น โดยครั้งนี้อบรมที่มหาวิทยาลัยจันทรเกษม ถ้าสนใจแล้วสมัครได้เลยครับ หมดเขต 28 เมษายน พ.ศ. 2552 นี้นะครับ

Junior Webmaster Camp ค่ายสอน Wordpress เบื้องต้นสำหรับเ็ด็ก ม.ปลาย

แล้วเจอกันที่ค่าย Junior Webmaster Camp นะครับ :D

การขึ้นบรรทัดใหม่ของไฟล์ด้วย Ruby บน Windows

วันนี้ด้วยการจะทำการจัดการกับ Textfile แต่ก็ติดปัญหาเล็กน้อยว่า ทำไมใช้ myfile.puts แล้วไม่มีการขึ้นบรรทัดใหม่ให้บน Windows ก็งงไปพักใหญ่ ใช้ print หรือ write ก็แล้วโดยใส่ \n แล้วก็ไม่ติด จนกระทั่งลองทำไฟล์ปกติขึ้นมาอันหนึ่งแล้ว ลองเอาไปเปิดดูใน Ruby ก็เห็นว่าเขาเขียนด้วย \r\n โดย \n จริงๆคือการขึ้นบรรทัดใหม่ ส่วน \r ก็คือ carriage return ซึ่งเป็นตัวอักษรตัวหนึ่งใน ASCII ซึ่งใน windows คงหมายถึงกด “enter” ดังนั้นวิธีแก้ปัญหาก็ค้นพบแล้วก็คือการใส่ \r\n เพื่อการขึ้นบรรทัดใหม่ โดยใช้กับคำสั่ง write หรือ print ก็ได้ (แต่ใช้กะ puts มะได้นะ)

ตัวอย่างเช่น
myfile = File.new(“test.txt”,”w”)
3.times { myfile.write(“hello\r\n”) }
myfile.close

ประมาณนี้เป็นต้น ลองทำดูครับ :)

พึงรู้ว่าหมึกเติมที่ใส่ตลับมันมีข้อเสียอย่างงี้นี้เอง

หลังจากคราวก่อนที่เคยเขียน วิธีเติมหมึก ว่าต้องทำยังไงไป ถึงวันนี้ผมเจอข้อเสียแล้ว เป็นข้อเสียที่แก้ไม่ได้เสียด้วย (จริงๆแก้ได้แต่เปลื้อง) นั้นก็คือ ชิปตรงหน้าตลับเสีย !! พอชิปเสียคราวนี้เราก็ต้องไปหาชิปมาใส่แทนใช่ไหมครับประเด็นมันอยู่ที่ว่า ชิปพวกนี้ไม่มีขายครับดังนั้นวิธีได้มันมาก็คือ “ไปซื้อของแท้มาซะ” ซึ่งตลับของ IP4200 นั้นราคาตลับละ 500 บาท โอ้โหแพงโคตรๆ แล้วของผมมันเสียทุกตลับเลยที่ผมได้เติมหมึก (รวม 4 ตลับ) เซ็งจิตคราวนี้ต้องหมดเงินไปอีก 2000 บาทเป็นแน่แท้ เดียววันหลังต้องไปหาที่คาร์ฟูดูว่ามีรุ่นที่มาแทนได้ไหม แล้วถูกกว่า

แต่ถึงกระนั้นผมก็ขอแนะนำคนที่จะซื้อ Printer ไปซื้อรุ่นที่เขาทำ Refill ด้านข้างไว้ให้แล้วจะดีกว่าครับ เพราะถึงจะแพงแต่เวลาเติมหมึกก็ไม่เสียเวลา , โอกาสเจอปัญหาแบบเติมหมึกด้วยตัวเองก็น้อยกว่า เพราะเราแทบไม่ต้องไปแตะตลับหมึกเลย ไม่เหมือนวิธีเติมหมึกที่ต้องไปยุ่งกะตลับหมึกทุกครั้งที่ต้องเติมโอกาสเสียคงเยอะกว่าแน่ หรือจะหนีไปใช้ Laser Printer เลยก็ดีเหมือนกันเพราะราคาหมึกถูกแต่ราคาเครื่องแพง เวลาหมึกหมดเปลี่ยนง่ายเหมือนๆกัน (แต่ไม่มีแบบเติมเนี้ยสิ)

ถ้าชอบแต่ Print ขาว-ดำ จริงๆผมขอแนะนำให้ใช้ Laser จะดีกว่าครับ เพราะเดียวนี้ถูกและดีด้วย แต่ถ้าต้องการ Print รูปยังไง Laser Printer ก็จะตอบสนองได้ไม่เท่า Inkjet Printer ดังนั้นถ้าจะใช้ Inkjet Printer อย่างลืมไปซื้อแบบที่ Refill ด้านข้างนะครับ ผมโดนมาเลยมา share (พึงเติมไปได้ 2 ครั้งเองนะ เซ็งจิต)

JRuby on Rails บน Google App Engine

วันนี้ผมทำได้ตั้งแต่บ่ายๆละแต่พึงมีเวลาพอจะมาเขียน Blog ต่อในเรื่องของ Google App Engine ผมมีตัวที่ทำเสร็จแล้วให้ทุกท่านสามารถลองไป Deploy บน GAE ได้เลยโดยดาวโหลดได้เลยจากไฟล์นี้ HelloRails ได้เลยครับ ผมขอสรุปวิธีทำดังนี้ครับ

โดยก่อนเริ่มเราต้องมี gem ดังนี้ก่อน

  • Rails
  • Rake
  • Warbler

เสร็จแล้วทำตามขั้นตอนดังนี้

  1. เราก็สร้าง project Rails ตามปกติ
  2. เข้าไปใน folder project rails จาก command-line พิมพ์ warble pluginize
  3. เสร็จแล้วตามด้วย warble config ครับ
  4. ใน vendor/rails ให้เราลบโฟลเดอร์ activerecord ออก
  5. ตามด้วยลบโฟลเดอร์ test ที่ิอยู่ในโฟลเดอร์ดังนี้ actionmailer , actionpack , activeresource , activesupport , railties
  6. เสร็จแล้วให้โหลด 4 ไฟล์ jar หลักเหมือนเมื่อวานคือ JRuby-GAE-Jar
  7. เสร็จแล้วโหลดไฟล์ Gae-Ruby-lib.zip นี้มาแตก zip ใส่ใน lib ครับ
  8. คราวนี้เราก็สร้างไฟล์ และแก้ไขไฟล์ตามไฟล์นี้ครับ google_app_engine.rb
  9. โดยดูจากคำว่า file แล้วก็ตัวอักษรภายในนั้นและที่จะอยู่ในไฟล์แต่ละไฟล์ ถ้าไฟล์ไหนมีข้อมูลอยู่แล้วให้ลบทิ้งหมด แล้วคัดลอกไฟล์ google_app_engine ใส่ไปเลย
  10. เสร็จแล้วก็เข้า command-line พิมพ์ warble ในโฟลเดอร์ project Rails ของเรา

ส่วนถ้าไม่ใช้ Windows เราสามารถที่จะทำแบบนี้ได้เลย

  • rails ชื่อโปรเจคrails -m google_app_engine.rb

แล้วทุกอย่างก็จะเสร็จพร้อมลุย แต่อันนี้ต้องมี JRuby นะสำหรับคนที่จะใช้ script นี้ แต่ด้านบนตามขั้นตอนผมใช้ ruby ธรรมดา แต่การใช้ script จะไม่มีไฟล์ big_table_servlet_store.rb ครับ ไม่รู้ว่าจำเป็นไหมแต่ตอนผมทำเป็นขั้นตอนพอเอาไฟล์นี้มาใส่ก็หาย เลยคิดว่าน่าจะเกี่ยวแต่คนเขียน script อาจจะลืม

Next Page »