Thin Rolling Restart Patch
Sunday, August 2nd, 2009 Posted in My Project, Programming, Ruby, Ruby on Rails | Comments OffI wrote a patch for Thin web server to do a rolling restart (i.e. restart the server one at a time) when I was working for my final thesis, Localmapia. I put my source on Github, and already inform the ...
Object#try ใน Rails 2.3
Sunday, August 2nd, 2009 Posted in My Project, Programming, Ruby, Ruby on Rails | Comments Offเคยเจอปัญหาบ้างไหมครับ กับการที่บางครั้ง object ที่เราเรียก method ไปเนี่ย มันกลายเป็น nil ขึ้นมา ทำให้เกิด exception ขึ้นมา >> @user.username NoMethodError: You have a nil object when you didn't expect it! The error occurred while evaluating nil.username from (irb):1 ซึ่งตรงนี้ เพื่อที่จะหลบ exception ในบางครั้งทำให้ Developer ต้องทำการเช็คก่อนว่า object นั้นเป็น nil หรือไม่ เช่น >> (@user ...
Flickr Submit Button CSS Retouch
Friday, July 17th, 2009 Posted in News, Programming | Comments Offวันนี้ได้เข้า Flickr หลังจากไม่ได้เข้าไปหลายวัน ไปสังเกตเห็นบางอย่าง ตรงแถวๆ comment box สังเกตเห็นอะไรไหมครับ? นี่คือการ Retouch ปุ่ม Submit ในส่วนของการเพิ่ม comment ครับ .. ซึ่งผมว่าเป็นจุดที่ทำให้เว็บดูสวยขึ้นมาอีกหน่อยเลยทีเดียว เพราะว่าถ้าเทียบกันกับอันเก่า .. ต้องบอกกับทีมงาน Flickr ว่า .. น่าจะทำใหม่ได้ตั้งนานแล้ววว ;)
Ruby และ active_support/whiny_nil
Monday, June 29th, 2009 Posted in My Project, Programming, Ruby, Ruby on Rails | Comments Offสำหรับนักพัฒนาส่วนใหญ่ที่เริ่มเขียน Ruby on Rails คาดว่าตอนนี้ในเครื่องของทุกๆ คน น่าจะลง Ruby 1.8 อยู่ เนื่องจากยังคงมี Gem หลายๆ ตัว ที่ยังไม่รองรับ Ruby 1.9 และทำให้เกิดปัญหาทางด้านความเข้ากันได้อยู่บ้าง ฉะนั้นผมเลยอยากพูดถึงหลุมพรางที่ Ruby 1.8 ได้ทิ้งเอาไว้ และทำให้หลายๆ คนนั้นพลาดตกหลุมกันไปบ้างครับ ผมขอสมมุติเอาไว้ว่า ผมได้สร้างระบบ Blog แห่งหนึ่ง โดยที่มี Model สามตัวคือ Post เอาไว้เก็บข้อความ Comment เอาไว้เก็บความคิดเห็น และ User เอาไว้เก็บชื่อผู้ใช้ ที่สามารถแก้ไขข้อความได้ครับ สมมุติว่า User ที่สามารถเข้ามาแก้ไขได้นี้ ...
Squish it!
Sunday, May 17th, 2009 Posted in Programming, Ruby, Ruby on Rails | Comments Offต้องบอกว่า Ruby on Rails นั้นมี helper methods เยอะจริงๆ และบางครั้งถ้าเราไม่ได้เข้าไปดูใน api documentation เราก็จะไม่พบว่ามันมีเมธอดเอาไว้ทำอะไรบ้าง วันนี้ผมเจอ method นึงครับ ซึ่งคิดว่าน่าจะมีประโยชน์ และน่าจะมีใครต้องใช้เมธอดนี้แน่ๆ มีใครบ้างไหมครับ ที่เคยเห็น user ชอบโพสข้อมูลมาเว้นบรรทัดๆๆๆ หลายๆ อัน หรือว่าชอบเคาะ space bar เว้นห่างๆ กัน ทำให้บางครั้งมันดูไม่เรียบร้อย และมันอ่านยาก .. วันนี้ผมมี method มาแนะนำครับ ชื่อว่า #squish ตัวอย่างในการใช้งานก็เป็นอย่างนี้ครับ >> str = %(hello world) => "hello\nworld" >> str.squish => ...
สิ่งที่ไม่ควรทำอย่างยิ่งในการ deploy website
Thursday, April 9th, 2009 Posted in My Idea, Programming | 1 Comment »สิ่งที่ไม่ควรจะทำ แต่ไม่ค่อยเห็นคนใส่ใจเท่าไรคือสิ่งนี้ครับ :) เข้าใจว่ายังมี developer บางท่านยังไม่สนใจเท่าไร กับการที่จะปิดการ display error บนเว็บของตัวเอง ซึ่งโดยปกติแล้วมันจะถูกเปิดโดย default เพื่อให้ developer ทำงานสะดวกขึ้นในการค้นหา error บนเว็บไซต์ของตัวเอง แต่สิ่งที่ควรทำคือ พอเว็บไซต์ของเราออกสู้สาธารณชนแล้ว ต้องปิดมันซะครับ! เหตุผลคือ มันจะทำให้คนที่ต้องการจะเข้ามาแฮกเว็บไซต์ของเราเนี่ย สามารถดูได้หมดเลยว่าโค้ดของเรานั้นอยู่ที่ directory ไหน และบางทีก็จะเห็นเลยว่า table ที่เราใช้เก็บข้อมูลนั้นคืออะไร แล้วที่แย่ไปกว่านั้นคือ ถ้าเราไม่ได้กันโค้ด SQL Injection อีก .. ตายครับตาย เว็บคุณจะโดนแฮกไม่รู้ตัว อยู่ดีๆ ใครก็เข้ามาเป็น admin ก็ไม่รู้ ค้นหาวิธีการไม่แสดง log แต่ให้ไปเก็บไว้ที่ไฟล์ๆ หนึ่งทาง Google ...
Clone กันเข้าไป .. คิดอะไรกันอยู่?
Thursday, April 2nd, 2009 Posted in Garbage, News, Programming | 7 Comments »หลังจากที่ Sanook ปล่อย Noknok ออกมาได้สักระยะหนึ่ง ซึ่งตอนนั้นก็โดนกระแสวิภาควิจารณ์กันไปอย่างแรงจากชาวเน็ต กับการที่เหมือนจะ clone twitter กันมาเต็มๆ ทั้ง interface และอื่นๆ .. ซึ่งสุดท้ายแล้ว Noknok ก็ยังมีคนเล่น อยู่ยั้งยืนยงต่อไป คราวนี้เมืี่อ Sanook ทำแล้ว .. แล้วไฉนคู่แข่งจะไม่ทำบ้างเล่า! วันนี้พอดี @hunt ส่งลิงค์มาเรียบร้อยครับ ชื่อเว็บว่า onair.kapook.com ซึ่งเป็น Microblogging อารมณ์เดียวกับ Twitter กันเลยทีเดียว .. และไม่ต้องบอกเลยว่าเจ้าของนั่นก็คือ kapook.com เจ้าของ subdomain xxx.kapook.com ชื่อดัง !! (หลังจากที่ลองเข้าไปดู ...
Login เข้า server ผ่าน SSH แบบเนียนๆ
Wednesday, April 1st, 2009 Posted in My Project, Programming | No Comments »เคยบ้างไหมครับ กับที่ต้องมานั่งคอยใส่รหัสผ่านวันละหลายๆ ครั้ง เวลาที่ต้องการจะเข้าไปทำงานบนเครื่อง Server ผ่านทาง SSH .. ผมละเป็นคนนึงครับที่มักจะมีปัญหาในเรื่องตรงนี้ เพราะว่าบางครั้งต้องล๊อคอินเข้าไปหลายๆ Server ในแต่ละวัน ทำให้พิมพ์รหัสผ่านกันมือหงิกเลยครับ หลังจากที่ได้ลองค้นหาข้อมูล ก็ไปเจอวิธีการอันหนึ่งครับ ที่ใช้วิธีการล๊อกอินเข้าไปโดยการใช้ RSA key pair โดยหลักการของมันก็คือ ให้เราเอา public key ของเราไปใส่ไว้บน server แล้วในตอนที่มันทำการ authenticate นี้ มันก็จะใช้ public key บน server กับ private key ที่เก็บอยู่ในเครื่องของเรา เอามายืนยันกันว่าเป็นตัวเราจริงๆ แทนที่จะต้องใช้รหัสผ่านครับ สำหรับวิธีการทำนั้นก็ง่ายแสนง่าย แต่ต้องเตือนไว้ก่อนนะครับว่าเทคนิคนี้ควรจะทำบนเครื่องคอมพิวเตอร์ของตัวเอง ที่มีการรักษารหัสผ่านเอาไว้ในระดับนึง ...
Thai Comic Update feed :)
Thursday, December 11th, 2008 Posted in My Project, Programming | 3 Comments »หลังจากที่ต้องทนเปิดหน้าเว็บไซต์ Comtoon.com ตั้งหลายครั้ง เข้าไปแต่ละครั้งก็ scroll ไปดูตรง new release ที่ไม่สามารถจะเลื่อนขึ้นลงได้ (เพราะว่าใช้ Safari มันไม่ support) สุดท้ายก็เลยลองทำ feed ออกมาจากข้อมูลของทาง Comtoon ดู http://feedproxy.google.com/ThaiComicUpdate คิดว่าอันนี้น่าจะเป็นประโยชน์สำหรับคนที่มักจะอ่าน feed เป็นประจำ และชอบอ่านการ์ตูนนะครับ จะได้ไม่ต้องคอยแวะร้านการ์ตูนเพื่อดูว่ามีเล่มใหม่ออกหรือยัง ดูจาก feed เอาเลย ;) ถ้าเจอปัญหา หรือเจอว่า Feed ไม่อัพเดทนานเข้าๆ บอกผมนะครับ .. ผมไม่รู้ว่าเขาจะปิด feature ที่เราไปดึงข้อมูลมานี่เมื่อไร T_T'' ' ปล. เมื่อไร Hunter x Hunter ...
อยากได้ 4 row keyboard บน iPhone 2.0 Firmware
Friday, September 19th, 2008 Posted in Gadgets, My Idea, My Project, Programming | 1 Comment »พูดไปแล้วก็เหนื่อยใจหน่อยๆ แฮะ .. อย่างที่ทุกคนอาจจะรู้กันครับว่า แม้ Apple จะเพิ่ม keyboard ใหม่ๆ สำหรับ iPhone firmware 2.0 มาแล้ว แต่ก็ไม่มีประเทศไทยในลิสต์ให้เลือกแต่อย่างใด อาจจะเป็นไปได้ว่าเป็นแผนการการตลบหลังคนไทย ที่ซื้อเครื่องแล้วเอามาใช้เถื่อนๆ ทาง Apple ไม่ได้รายได้จากการใช้บริการ ประมาณนั้น .. แต่คือ เมื่อก่อนตอน firmware 1.1.1 ออกมา ตอนนั้นยังไม่มีการทำ Keyboard ของชาว Russia ทำให้ RipDev ต้องผลิต Russian keyboard ออกมา โดยเหมือนเป็นการเขียน inject เข้าไปบน application layer ...


