วันนี้ลองเล่น Google+ sign in API ขอบันทึกเท่าที่ลองทำนะครับ
Step 1: Create a client ID and client secret
สร้าง client ID and client secret , สร้าง Google APIs Console project, เปิดใช้ Google+ API, สร้าง OAuth 2.0 client ID, และลงทะเบียน JavaScript origins:
- ไปที่ Google APIs Console , เลือก Create จาก pull-down menu ทางด้านซ้าย , และป้อนชื่อ project name (เช่น "Sample").
- ไปที่ Services pane, เปิดใช้งาน (enable) Google+ API and any other APIs that your app requires.
- ในช่อง API Access pane, คลิก Create an OAuth 2.0 Client ID.
- ในช่อง Product name , ป้อนชื่อของ application (เช่น "Sample"), แล้วคลิก Next. ใส่โลโก้เสียหากว่าต้องการ.
- ในช่อง Client ID Settings section, ทำตามนี้:
- เลือก Web application สำหรับ Application type.
- คลิกที่ลิงก์ more options.
- ในช่อง Authorized Redirect URIs ให้ลบทิ้งให้หมด.
- ในช่อง Authorized JavaScript Origins ให้เพิ่ม URLs เข้าไป โดย URL แรก สำหรับการพัฒนาระบบ (หากมี port ให้ระบุต่อท้าย เช่น :8080). อีก 2 สำหรับการนำไปใช้งานจริง
* คลิกปุ่ม Create client ID.http://localhost http://mysite.example.com https://mysite.example.com
- ใน API Access pane, มองหา Client ID for web applications แล้วจดหรือสำเนาค่าของ Client ID และ Client secret ไว้ จำเป็นต้องใช้ตอนทดสอบและใช้งาน
Step 2: Include the Google+ script on your page
วางสคริปท์ด้านล่างไว้บน </body>
<!-- Place this asynchronous JavaScript just before your </body> tag -->
<script type="text/javascript">
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/client:plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
</script>
Step 3: Adding a sign-in button to your page
วางปุ่ม G+ SignIn ไว้ในตำแหน่งที่ต้องการ
<span id="signinButton"> <span class="g-signin" data-callback="signinCallback" data-clientid="CLIENT_ID" data-cookiepolicy="single_host_origin" data-requestvisibleactions="http://schemas.google.com/AddActivity" data-scope="https://www.googleapis.com/auth/plus.login"> </span> </span>
Step 4: Handling the sign-in
โค๊ดสำหรับเรียกกลับเมื่อมีการ signin
function signinCallback(authResult) {
if (authResult['access_token']) {
// Successfully authorized
// Hide the sign-in button now that the user is authorized, for example:
document.getElementById('signinButton').setAttribute('style', 'display: none');
} else if (authResult['error']) {
// There was an error.
// Possible error codes:
// "access_denied" - User denied access to your app
// "immediate_failed" - Could not automatically log in the user
// console.log('There was an error: ' + authResult['error']);
}
}
ส่วนอื่น ๆ ลองตามไปดูจากที่มาได้เลยครับ
ที่มา developers.google.com
ปล. ถ้าหากเป็น Facebook ก็ใช้ developers.facebook.com
Directadmin มีอัพเดทเวอร์ชั่นใหม่ แต่ผมไม่สามารถเข้า https://www.mydomain.com:2222 ได้ เลยต้อง SSH เข้าไป build เอง
ขั้นตอนคือ
- SSH เข้าไปที่ server
- เปลี่ยน directory ไปที่ /usr/local/directadmin/custombuild
- พิมพ์ : "./build update" เพื่อดึงรายการอัพเดทล่าสุด
- พิมพ์ : "./build versions" เพื่อดูรายการอัพเดทใหม่พร้อมรายละเอียดเวอร์ชั่นของแต่ละ package และเวอร์ชั่นใหม่ที่ยังไม่ปรับปรุง
- พิมพ์ : "./build update_versions" เพื่อทำการอัพเดท
เท่านี้แหละ
ที่มา hostjunkies.com
มีปัญหาที่จะต้อง update บางฟิลด์ของฐานข้อมูล แต่ขั้นตอนการตรวจสอบจะต้องเชื่อมโยง (join) กับอีกตารางด้วย ทีแรกกะว่าคงต้องเขียนโปรแกรมตรวจสอบ แล้วค่อยอัพเดทเสียกระมัง แต่ทว่า... ลอง google เสียหน่อยก่อนเป็นไร ก็เลยเจอกับ
UPDATE t1 LEFT JOIN t2 ON t2.some_id = t1.some_id LEFT JOIN t3 ON t2.t3_id = t3.id SET t1.new_column = t3.column;
สบายไป
ที่มา stackoverflow.com

เพิ่งเปิดเข้ามาเจอ ไข่อีสเตอร์ ของ Google Adsense เนื่องในโอกาสครบรอบ 10 ปี โดยเอา mouse ไปวางไว้ที่ icon ด้านล่าง ตามรูป
วันนี้ได้ลองหวนกลับมาใช้งาน hotmail ก็เลยถือโอกาสทดสอบการใช้งานภาษาไทย บน Microsoft Word Web App ว่าการใช้งานเป็นอย่างไรบ้าง สามารถตัดคำได้หรือไม่ และจะใช้งานได้ดีกว่า Google Drive ซึ่งมีโปรแกรม Google Docs ที่จับลูกค้าในกลุ่มเดียวกัน
ดูจากการออกแบบหน้าเว็บแล้ว มีความรู้สึกที่ไม่แปลกแยกไปจาก Microsoft Word ซึ่งทำให้คนที่เริ่มใช้งานในครั้งแรกมีความรู้สึกเคยชิน หากแต่ลองสำรวจเมนูลึกลงไปจะพบว่ายังคงมีเฉพาะความสามารถพื้นฐานของ wordprocessor เท่านั้น แม่ว่าจะยังไม่สามารถปรับแต่งอะไรได้มากมายนัก แต่ก็สามารถนำไปใช้งานทั่วไปได้เป็นอย่างดี โดยเฉพาะเรื่องของการตัดคำภาษาไทยที่ Microsoft Word Web App สามารถทำได้ในระดับที่ดีทีเดียว
สิ่งที่ยังไม่ได้ลองและเป็นสิ่งที่สำคัญในการทำงานยุคออนไลน์ในปัจจุบัน คือ การแบ่งปันเอกสารและการร่วมกันแก้ไขเอกสารพร้อม ๆ กันหลาย ๆ คน ที่คู่แข่งอย่าง Google Docs สามารถทำได้อย่างแทบจะไม่มีที่ติทีเดียว
ปล. ข้อความข้างบนนี้ พิมพ์บน Microsoft Word Web App แล้ว copy มาวาง


วันนี้ยก Notebook Toshiba เครื่องที่ตั้งกองไว้ที่พื้นมาหลายเดือนแล้วมาตั้งบนโต๊ะทำงาน (หลังจากซื้อ Lenovo เครื่องใหม่มาแทนเมื่อต้นปี 2555 - ของขวัญปีใหม่ให้ตนเอง) ยกมาตั้งปุ๊บก็เสียบ mouse เครื่องตั้งอยู่ห่างออกไปเกินมือเอื้อมถึง ลากสาย mouse มาไว้ใกล้ ๆ ตัว เปิดเครื่องเริ่มทำการ update Ubuntu ให้เป็น version ล่าสุด (13.04) ต้องโยกตัวไปหาเครื่องทุกครั้งที่ต้องพิมพ์บน keyboard (เริ่มเข็ดเอวแล้วสิเรา)
ปิ๊งขึ้นมาว่า "แล้วทำไมตรูจึงไม่ทำให้ใช้ keyboard/mouse อันที่ใช้งานกับเครื่องหลัก ให้มันใช้กับเครื่องนั้นด้วยฟะ"
คิดได้ดังนั้นแล้ว ก็เลย [google](ubuntu join many computer into one) เจอนี่เลย 5 ways to make using multiple computers and devices more efficient with Ubuntu สุดยอด ตรงกับที่ต้องการเลย
ในบทความมีวิธีการแบ่งกันใช้อยู่ 5 แบบ แต่ที่ต้องการคือ "Sharing mice and keyboards" วิธีการง่ายนิดเดียว
บน Ubuntu มีโปรแกรมชื่อ "Synergy" ที่สามารถทำงานนี้ได้เลย โปรแกรมมีให้เลือกใช้อยู่ 2 ตัว คือ
- Synergy : ตัวนี้ GUI จะใช้ยากหน่อย ต้องหลายคลิกกว่าจะเลือกเรียบร้อย
- QuickSynergy : ตัวนี้ GUI ใช้ง่ายมาก ๆ
วิธีการใช้ QuickSunergy
หลังจากติดตั้งเสร็จ เปิดโปรแกรมมาจะเห็นหน้าตาตามนี้

หากเป็นเครื่องหลัก (มี mouse/keyboard เสียบอยู่) เราเรียกว่าเป็นเครื่อง server ให้คลิกที่ tab Share เลือกคลิกที่ตำแหน่งเครื่องด้านไหนก็ได้ (ซ้าย-ขวา-บน-ล่าง) แล้วตั้งชื่อเครื่องปลายทางไว้ แล้วคลิก Execute ได้เลย
ส่วนเครื่องที่เหลือ (ไม่มี mouse/keyboard) เราเรียกว่า client ให้เลือกคลิกที่ tab Use แล้วป้อน IP ของเครื่อง server (Server hostname/IP address) และ ชื่อเครื่องตนเอง (Screen name) แล้วคลิก Execute
แค่นี้แหละ ก็เลื่อน mouse ไปอีกเครื่องได้เลย

ปีนี้ได้มีโอกาสไปเป็นกรรมการ Photo voice ให้กับสาธารณสุขจังหวัดสงขลาอีกครั้ง ครั้งนี้จัดประกวดกันในงาน "Songkhla Health Fair 2013" เมื่อ 6 มิถุนายน 2556 ทีศูนย์ประชุม ม.อ. ในการประกวดได้แบ่งภาพถ่ายออกเป็น 2 ชุด คือ รพช. และ รพ.สต.
กรรมการที่ไปร่วมตัดสิน มีทั้งหมด 3 ท่าน (รวมผมด้วย) ทั้ง 2 ท่านล้วนแต่เป็นผู้รู้ ผู้เชี่ยวชาญและผ่านประสบการณ์ในการถ่ายภาพมาเป็นอย่างดี ทำให้เรารู้สึกเกร็ง ๆ อยู่พอสมควร แต่โดยรวมแล้วก็คุยกัน มีข้อเสนอแนะ และตัดสินออกมาได้ด้วยดี

ภาพที่ได้รางวัลที่ 1 ของ รพช. ชื่อภาพว่า "สะท้อนสุข" ภาพนี้เป็นการสื่อความหมายที่สะท้อนความสุขของตัวละคน (คนแก่) ผ่านตัวแทน (พระ) เป็นการตั้งชื่อและอธิบายความหมายผ่านข้อจำกัดทางเทคนิคที่ไม่สามารถถ่ายภาพตัวละคร มีข้อติที่ทุกคนเห็นพ้องกันคือฉากหลังที่ชัดเกิน หากถ่ายให้เบลอ ก็จะทำให้สมบูรณ์ทีเดียว

ภาพที่ได้รางวัลที่ 1 ของ รพ.สต. ชื่อภาพว่า "รัก....หรือทำร้าย" ส่วนที่นำจะทำได้ดีกว่านี้คือการสื่ออารมณ์ของยาย หากถ่ายให้เห็นสีหน้าหรือแววดาบางส่วน ก็จะแสดงให้เห็นความรักและความขัดแย้งในภาพได้ชัดเจนขึ้น
แนวโน้มของ internet โดย John Doerr แกนนำชื่อดังคนหนึ่งของ KPBC
KPCB Internet Trends 2013 from Kleiner Perkins Caufield & Byers
Source: KPCB
ที่มา isriya.com
ขอบ่นหน่อยเหอะ
ช่วงนี้ดับบ่อยมาก เมื่อวานก็ดับ
ก็เข้าใจนะ ว่ากำลังปรับปรุงระบบสายส่งของหมู่บ้าน

จริง ๆ ก็ไม่ได้ว่างหรอก แต่นั่งหา theme สำหรับใช้กับ icarsmile.com แต่ก็ยังไม่เจอที่ถูกใจ ก็เลยปรับ theme ให้กับเว็บไซท์ของตัวเองไปก่อน
ไม่รู้ว่าลอกเลียนแบบเขา จะผิดลิขสิทธิ์หรือเปล่า?
เอาเป็นว่า หาก OK เดี๋ยวจะไปซื้อนะจ๊ะ...