Pages

12/11/2013

Android Acitivity Lifecycle ???

มารู้จักรอบชีวิตของ Android กัน มันไม่เหมือนใครหรอกนะ

หลังจากเขียนบทความเรื่อง Hello World with Android แล้วก็เลยมานั่งคิดว่า ควรจะเขียนเรื่องอะไรต่อดี คิดไปคิดมาเลยว่า เราน่าจะเขียนเรื่อง Android Activity Lifecycle นะ ซึ่งมันคืออะไร เดี๋ยวอธิบายให้ฟัง
ส่วนทําไมหรอ เพราะว่าการจะเริ่มเขียน Application นึงแบบจริงๆจัง มันจะต้องรู้จักของที่เราจะทําขึ้นมาให้ดีซะก่อน การที่เราเรียน Lifecycle ของ Android แล้ว จะทําให้เราเขียน Android ได้ดีมากขึ้นเยอะเลย

อะไรคือ Android Acitivity Lifecycle ???

Activity Lifecycle คือ วงจรชีวิตของ Activity ในโปรแกรมของเรานั่นเอง เผื่อคนไม่รู้ Activity คือ ส่วนแสดงผลของโปรแกรมเรานั่นเอง เพราะฉะนั้นคําว่าวงจรชีวิตของ Activity หมายถึง การเกิดขึ้น-ตั้งอยู่-ดับไป นั่นเองเพราะฉะนั้น สมมุติว่าเราเข้าใจการ เกิดขึ้น-ตั้งอยู่-ดับไป เราก็จะสามารถจัดการกับ resource ต่างๆของ Application ได้ดีขึ้น เราจะรู้ว่า จังหวะไหน เราต้องถอย จังหวะไหน เราต้องบุก เราต้องทําอะไรในจังหวะไหน นี่ค่อนข้างสําคัญมากน่ะ
เดี๋ยวจะให้ดูรูป Lifecycle (วงจรชีวิต) ของมัน แต่ ขออธิบายก่อนว่า เจ้าหุ่นเขียว เนี้ยมี lifecycle ไม่เหมือนใครเลย มันมี การแบ่งเป็น state อยู่ 3 แบบ

Activity State ของ Android มีไรบ้าง ???

จริงๆแล้ว state ของ Android มีแค่ 3 แบบเองน่ะ คือ
  1. Running / Resumed state : หมายถึง สภาวะ ที่ app แอรนดรอยของเรา ที่ทํางานอยู่บนหน้าจอเราเลย ( foreground )
  2. Paused state : หมายถึง สภาวะที่ app แอรนดรอยของเรา อยู่บนหน้าจอของเราเหมือนกันน่ะ แต่เพียงแต่มี หน้าอื่นขึ้นมาบังอยู่บางส่วน ซึ่งมันจะยังทํางานปกติดีน่ะ ถูกเก็บอยู่ใน Memory นะ และ ก็ มี window manager คอยดูแลมันอยู่ แต่โดน ปิดทิ้งได้เหมือนกันนะ ถ้าระบบเห็นว่า Memory มันเริ่มตํ่ามากๆแล้วจริงๆ
  3. Stopped state : หมายถึง สภาวะที่ app เรานี่โดนหน้าอื่นบังหมดล่ะ  ( background )  คนใช้ไม่เห็นมันล่ะ ซึ่งมันยังถูกเก็บอยู่ใน memory และ แต่ว่า window manager ไม่ได้ดูแลมันล่ะ แล้วก็ถ้า ระบบ ต้องการ Memory ที่ไหน มันก็จะปิดโปรแกรมเราทิ้งเลยล่ะ
สรุปแล้วจริงๆ ทั้ง Paused และ Stopped state สามารถโดนปิดทิ้งได้น่ะ ถ้าระบบต้องการ memory จริงๆ โดยมันจะไป เรียก finish() method อะ แล้วพอเรากลับมาเปิดอีกครั้ง มันต้องเริ่มต้นใหม่หมดเลยละ

มาดูรูปวงจรชีวิตของ Activity กันๆ

activity_lifecycle
งงล่ะสิ เป็นผมก็งงน่ะ ฮ่าๆ เวลาเจอครั้งแรกนี่ …. เริ่มจากงี้ดีกว่า เรารู้จัก state ต่างๆแล้วเนอะ เวลาที่ state มันเปลี่ยนไปมา มันจะแจ้งเตือนกลับมาในรูปแบบของ callback method แหละ
โดยที่ method เหล่านี้แหละ ที่เราจะนํามาเขียนอะไรเพิ่มเติมลงไป เพื่อจัดการกับ state ณ จังหวะนั้นให้อย่างเหมาะสมอย่างที่สุดเลย ส่วน method มีอะไรบ้างก็จะเห็นตามในรูปแหละ ว่ามี 6 method ดังนี้
  • onCreate()
  • onStart()
  • onResume()
  • onPause()
  • onStop()
  • onDestroy()
ส่ว method เหล่านี้ทําอะไรบ้าง จะค่อยๆอธิบายไปน่ะ จะได้ไม่ งง กัน :)

ไอ้ Method เราจะแบ่งหน้าที่มันง่ายๆตาม ช่วงที่มันเกิดแหละ

ช่วงเวลาที่มันเกิดขึ้นจริงๆ แล้วมีแค่ 3 ช่วงเองน่ะ
  1. ช่วง entire lifetime : ช่วงที่ Activity มัน เกิดขึ้น (ตอนเปิด app/(layout) activity ครั้งแรกนั่นแหละ) มันก็จะเรียกonCreate() และ พอมันดับไป ก็จะเรียก onDestory() เพราะฉะนั้นเราจะทําการสร้างค่าเริ่มต้นของ Activity เราในonCreate() และ พอมันจะดับ เราก็ค่อย ปล่อยค่าต่างๆใน onDestory() นั่นเอง
  2. ช่วง visible time :  ช่วงนี้คือ ช่วยที่เราเล่นกับ app เรานั่นแหละ มันจะเรียกแค่ onStart() และ onStop() แค่นั้นแหละ อารมณ์จะประมาณว่า เราเปิด หน้าจอ A อยู่ แล้วก็ เปลี่ยนไปหน้าจอ B … จังหวะนี้แหละที่หน้าจอ A จะเรียก callback method onStop() ให้กับ A ทันทีเบย และ เรียก onStart() กับ B นั่นเอง
  3. ช่วง  foreground lifetime : ช่วง foreground คือ ช่วงที่มันสลับไปอยู่ด้านหลังแบบไม่หายทั้งจออะ มันก็จะสลับเรียก onPause() และ onResume() กันไป เช่น เวลามี dialog ลอยขึ้นมางี้ เจ้า activity ตัวแรก จะเข้าโหมดonPause() ไปโดยปริยาย
สังเกตุนะ ครบ 6 method ของวงจรชีวิต Activity แล้วนะ :) ลองกลับขึ้นไปดูรูปสิ จะเห็นว่า มันจับคู่นั่นเอง จากหัวลงมาเลยล่ะ มันมีความสัมพันธ์กันแบบนั้นแหละ

แล้วไอ้รูปข้างๆ ที่ไม่ใช่คู่กัน คือไรอะ???

ไม่ต้องตกใจไป
  • onRestart() : คือจังหวะที่ ผู้ใช้ อยู่ใน สภาวะ onStop() อยู่ แล้วเรากลับไปหามัน มันจะถูกเรียก และ เรียก onStart() ตามต่อเสมอๆเลย
  • App process killed : คือ จังหวะที่เคยบอกว่า ถ้า memory ไม่พอ หรือ App อื่นที่มี Priority สูงกว่าต้องการใช้ memory  มันจะดู activity ที่อยู่ในสภาวะ onPause() กับ onStop() แล้วก็ปิดทิ้งเลยล่ะ แล้วจะไปเรียก onCreate() ถ้าเรากลับมาเปิดใหม่

แล้วสงสัยไหมว่า ถ้าระบบมันปิด activity เราทิ้งไปแล้ว แล้วค่าใน activity นั้นทําไงอะ???

นั่นสิ สงสัยไหม? ว่าเราจะจัดการยังไง ถ้าข้อมูลสําคัญเราอยู่ตรงนั้น แล้วเราโดนปิดไป ยังงี้ค่าก็หายดิ!!! มา เรามาดูรูปข้างล่างกัน
restore_instance
จากรูปในกรอบ สี่เหลี่ยมเทาๆ จะเห็นว่า เรามี 2 callback method ที่มาช่วยเราจัดการเก็บค่าไว้คือ
  1. onSaveInstanceState() : คือ จังหวะที่ Activity ตัวอื่นๆเข้ามาอยู่หน้าแรก ( foreground ทั้งหมด ) มันจะไปเรียก method callback นี้ และก็ จัดการเก็บค่านี้ เป็น Bundle ซึ่ง Bundle จะเก็บค่าแบบ name-value pairs
  2. onRestoreInstanceState() : คือ จังหวะที่ Activity ถูก ปิดไปละ แต่ว่า ผู้ใช้กลับมาและกําลังจะเปิดมันอีกที จังหวะนี้แหละมันจะเรียก callback นี้ขึ้นมา และดึงค่าออกมาใช้ได้เลย
แต่สิ่งที่เราควรจําไว้อย่างนึงคือ ถ้าเราต้องการที่จะเก็บข้อมูลแบบจริงๆจังๆ เราควรจะใช้ method onPause()  หรือonStop() ไปเลยน่ะ เพราะว่าบาง event มันก็ไม่ชัวร์เลยที่ onSaveInstanceState() จะถูกเรียก เช่น จังหวะที่เรากด ปุ่มBack เพื่ออกจากโปรแกรม หรือ จังหวะที่ ระบบเราปิด activity ไปแล้ว มันจะไม่มี state ให้เราเก็บแล้วนั่นเอง

จบละ ง่ายไหม? มีแค่ 6 methodหลักเอง … มาสรุปกันดีกว่า !!!

สรุปได้ง่ายๆเลยว่า Activity Lifecycle ของ Android มีแค่ 6 method หลักๆเอง และ อยากจะแบ่งหน้าที่ของ method ต่างๆออกมาตามที่สมควรคือ
  • onCreate() : จะถูกเรียกเมื่อแรกสุดที่ Activity ถูกสร้าง เรา ใช้สร้างหน้าตาของ layout ก็ตอนนี้แหละ
  • onResume() : จะถูกเรียกเมื่อ Activity ถูกเรียกขึ้นมาใน foreground อีกที ใช้ ผูก services ตอนที่จะใช้อีกที หรือ สร้าง field ต่างๆ
  • onPause() : ถูกเรียกเมื่อ Activity อื่นมาทับไปแต่ไม่หมดนะ ใช้ปิด services ต่างๆก็ดี
  • onStop() : ถูกเรียกเมื่อ Activity ของเรากลายเป็น Background ไปละ ส่วนใหญ่ใช้ปิด database connection หรือ connection อื่นๆ
จริงๆ Activity Lifecycle ก็มีแค่นี้แหละ มันขึ้นอยู่กับว่าเราจะประยุกต์ใช้กับ Application เรายังไงมากกว่า :)
ไว้มาเขียนเพิ่มน่ะ คราวหน้ายังนึกไม่ออก เอาเป็นอะไรที่ลงมือทํากันจริงๆบ้างดีกว่า เพราะว่าๆหลักๆที่ต้องรู้ก่อนทํา ก็น่าจะมีแค่นี้เอง ที่เหลือมัน on the job ได้อะ ไว้มาเขียนเล่นต่อนะ

มาทำความรู้จักกับ ASROCK NO-K OC TECHNOLOGY กันครับ

Technology ใหม่ล่าสุดของ ASRock นั่นคือ No-K OC ซึ่งเป็น Function พิเศษที่สร้างขึ้นมาให้ CPU Intel ในตระกูล Ivy Bridge รุ่นที่ไม่มี K (Unlocked) นั้นสามารถเร่งความเร็วได้มากกว่าการใช้'งาน Turbo Boost ของ Intel ครับ ซึ่งก็จะเป็นที่น่ายินดีมากๆ สำหรับคนที่ใช้ CPU Non-K อยู่ ที่จะได้ความเร็วของ CPU ตัวเองเพิ่มขึ้นอย่างน้อยราวๆ 10% ได้เลยครับ

Update BIOS First.
non-k oc bios
จะเริ่มใช้งานได้อย่างไร...?  ก็เริ่มจากการ Update BIOS ที่มีการเพิ่ม Function No-K OC ให้เรียบร้อย ซึ่งจะใช้งานได้กับมนบอร์ด Intel Chipset Z77 Express ของ ASRock ได้ในหลายๆ รุ่น  สามารถเข้าไปเช็ครายการได้ที่หน้า Download BIOS ของเมนบอร์ด Z77 ที่ท่านได้ใช้อยู่ครับ

No-K OC Introduction
no-k oc 002 resize
มาดูความแตกแต่งกันระหว่างการใช้ CPU Non-K อย่าง Intel Core i5-3450 ที่ใช้งานร่วมกับเมนบอร์ดชิปเซท H77 โดยที่ CPU มีความเร็วเดิมๆ จากโรงงานอยู่ที่ 3.1Ghz และเมื่อมีการใช้งานของระบบ Turbo Boost จะสามารถเร่งความเร็วสูงสุดได้เพียง 3.5Ghz เท่านั้น  แต่เมื่อทำการใช้งานร่วมกับเมนบอร์ดชิปเซท Inel Z77 ของ ASRock ที่มี No-K OC function แล้วจะเห็นได้ว่าสามารถเพิ่มความเร็วสูงสุดให้กับ CPU ได้ถึง 3.9Ghz เลยทีเดียวครับ (ชมภาพประกอบด้านบนเพื่อความเข้าใจ)

How to use No-K OC
no-k oc 003 resize
         การใช้งานนั้นง่ายมากๆ เพียง Click เดียวใน UEFI BIOS ก็แรงได้เลย แค่กด NO-K OC ให้เป็น Enable เท่านั้นครับ ซึ่งตอนนี้เมนบอร์ดที่รองรับได้จากข้อมูลที่เรามีคือเมนบอร์ด ASRock ในรุ่น Z77 Pro3, Z77 Pro4 และ Z77 Extreme4 และจะมีการปรังปรุงให้ใช้ได้กับเมนบอร์ดในตระกูล Z77 และ Z75 ของ ASRock ทุกรุ่นในเร็ววันนี้ ดังนั้นท่านที่มี CPU Intel Ivy Bridge Non-K อยู่สามารถเร่งความเร็ว CPU เพิ่มขึ้นได้เพียง Click เดียวเท่านั้น
         จากภาพประกอบด้านบนนี้ท่านจะเห็นได้ว่า Function No-K OC นั้นสามารถเพิ่มความเร็วให้กับ CPU Intel Core i5-3450 จากความเร็ว 3.1Ghz เป็น 3.9Ghz ได้ และ CPU Intel Core i-7 3770 จากความเร็ว 3.4Ghz เป็น 4.3Ghz ได้เลยทีเดียวครับ สมมุติเล่นๆ ว่า ถ้าเราลาก Bclk เพิ่มจาก 100Bclk ขึ้นไปก็จะได้เห็น CPU Non-K วิ่งได้ที่ความเร็วในระดับ 4.0Ghz - 4.5Ghz + ก็เป็นได้ครับ
ตัวอย่างสมมุตินะครับ
CPU Intel Core i5-3450 + No-K OC = ได้ตัวคูณทึเพิ่มขึ้นมาเป็น 39x100Bclk = 3.9Ghz
ปรับแต่งค่าของ Bclk เป็น 39x105 = ความเร็ว CPU 4.09Ghz ! +
CPU Intel Core i7-3770 + No-K OC = ได้ตัวคูณทึเพิ่มขึ้นมาเป็น 43x100Bclk = 4.3Ghz
ปรับแต่งค่าของ Bclk เป็น 43x105 = ความเร็ว CPU 4.50Ghz ! +
แค่คิดเล่นๆ แค่นี้ก็สนุกแล้วครับสำหรับ CPU ในตระกูลที่ไม่มี K ที่สามารถปรับประยุกต์ใช้งานร่วมกับการปรับแต่งค่าของ Bclk ได้ก็จะสามารถเพิ่มความเร็วของ CPU เพิ่มขึ้นไปอีก ก็หวังว่าหลังจากเปิด Function No-K OC แล้วทาง ASRock สามารถอนุญาติให้ปรับแต่ง Bclk ได้อีกก็จะเยี่ยมไปเลยครับ อย่างไรก็ดี ต้องลองใช้งานกันดูครับสำหรับผู้ที่มี CPU Non-K กับเมนบอร์ด ASRock Z77Series ใช้อยู่ 



12/09/2013

8 แอพพลิเคชั่น ฟรี! ประจำวันแบบจำกัดเวลาบน APP STORE ประจำวันที่ 9 ธันวาคม 2556

8 แอพพลิเคชั่น ฟรี! ประจำวันแบบจำกัดเวลาบน APP STORE ประจำวันที่ 9 ธันวาคม 2556
8 แอพพลิเคชั่น ฟรี! ประจำวันแบบจำกัดเวลาบน App Store ประจำวันที่ 9 ธันวาคม 2556 apps of the day สำหรับสาวก iPhone, iPad และ iPod น่าจะพอรู้กันว่าในแต่ละวันจะมีแอพพลิเคชั่นบน Apple App Store แจกฟรีอยู่เรื่อยๆ วันนี้ทีมงานเลยเอาข่าวมาฝากกันว่ามีแอพฯ ไหนที่กำลังแจกฟรีแบบจำกัดเวลาอยู่บ้าง จะได้หาแอพพลิเคชั่นใหม่ๆ มาเล่นกันแบบฟรีๆ ครับ ^^
1. Localscope – แอพพลิเคชั่นการนำทาง (iPhone)
2. PrankBot – แอพพลิเคชั่นเพื่อความบันเทิง (iPhone)
3. ShoppyList (Shopping List) – แอพพลิเคชั่นเพื่อการพัฒนารูปแบบ
4. Clear Vision (17+) – แอพพลิเคชั่นเกมส์
5. Hairstyles for Girls and Ladies. 300+ Tutorials How to Braid Long Hair – แอพพลิเคชั่นความเป็นส่วนบุคคล
6. Tiny Dentist Holidays: Christmas – แอพพลิเคชั่นเกมส์
7. Petting Zoo – Animal Animations - แอพพลิเคชั่นเพื่อความรู้ การศึกษา
8. Escape With Me 
- แอพพลิเคชั่นเกมส์


จาก .
http://www.mxphone.net/091213-8-free-apps-itunes/?utm_source=rss&utm_medium=rss&utm_campaign=091213-8-free-apps-itunes

12/05/2013

20+ Best Flat Design Website Templates

NetStudio – Bootstrap Flat Design Website Templates

NetStudio is a responsive flat design, Retina-Ready template with a minimalist, simple, elegant and clean style, a strong focus on contents and readability. It presents a modern business solution. NetStudio is suitable for multipurpose websites such as business, company, portfolio or blog.

Flatpad

Flatpad is a unique and creative html template with clean and modern design. It is perfect choice for your portfolio, blog and service websites. It can be customized easily to suit your wishes.
-->

Kira Multipurpose Flat Html5 Template

Kira is Multipurpose Flat designed and Responsive Html Template Based on Bootstrap 3

Talia – Responsive Flat Design One Page Template

Talia is flat layout fully responsive HTML5 template with parallax effects, modern design and animations. The best for Creative Agencies, Photographers, Video Producents. You can use it also like a landing page, it’s multi-purpose.

Sonnet

Sonnet is an One page Parallax template built with Bootstrap 3.0. Flat color, clean content placement, easy customization and professional coding is its core power. You can use it for corporate, business portfolio, product showcase, personal portfolio, company profile, blog, product & photo gallery and many more. Its totally modern and innovative flat design template.

Flatible Flat Design Style Template

Coyote

Coyote is flat/clean/minimal design template best for shopping cart design. It is based on Bootstrap 2.3.x Framework which makes it very easy to customize or upgrade with higher version of Bootstrap framework

Marble – Flat Responsive HTML5 Template

Marble is a flat, responsive, HTML5 site template built with Twitter Bootstrap with unique portfolio. It includes 6 different homepage layouts and 2 blogs. Marble will be useful for artists, photographers, creative agencies, digital studios, personal freelancers, and any kind of business owners that would like to showcase their portfolio beautifully

Producr – Folio HTML Flat template

Keylight – Light & Flat Portfolio

Keylight is a simple one page portfolio flat template, great for showcasing your work or for a small agency’s portfolio. It’s responsive and it’s based on LESS, which makes it highly customizable.

Flux – Flat Corporate HTML Template

FlatBook – Flat App & Ebook Selling Landing Page

FlatBook is a fully responsive hand coded ebook or app selling landing page featuring a trendy but unique flat design in nine color schemes. FlatBook suits perfectly every businesses or individuals who would like to showcase an ebook or an application with a onepage marketing landing page in a sophisticated, eye-catching way.

Cassius – Modern & Flat Multi-Purpose Template

Cassius is a modern, sexy, and flat theme that has been created specifically for startups, new apps, or companies looking for a fresh and stylish design.

Paris – Responsive Flat HTML5 Template

Flat Studio

Flatnica – Ultimate Flat Template

Creatrix – Flat Responsive Template

Creatrix is a professional flat template for any business or portfolio website, it’s fully responsive design ready to look stunning on any device.

18augst Flat and Responsive Portfolio Gallery

18augst is a flat and responsive portfolio gallery template, designed for many kind website such as gallery inspiration website, portfolio, personal site etc. This template built with twitter bootstrap v2.3.1 and coming with 5 slider variant, unlimited color and working contact form.

Straight – Creative Flat HTML Template

Candy – Flat Responsive HTML5 Template



Linq to Entities and Last (LastOrDefault)

Linq to Entities and Last (LastOrDefault)



It is my bad luck – every time that I need to show something the team manager, we receive the weirdest exceptions. Today was the LINQ to Entities does not recognize the method ‘XXXXX.LastOrDefault[XXXX]….’ method, and this method cannot be translated into a store expression.
the expression itself was pretty simply – querying by secondary index. When I changed the query to “FirstOrDefault” removed the run time exception, this made me think – FirstOrDefault can be converted to SQL pretty easy – SELECT  TOP 1. How would you translate “LastOrDefault” ?
The concept of first or last implies the usage of some kind of sorting mechanism. When you run regular select there is actually implicit “ORDER BY [PK]” (notice that the order be ASC or DESC, depending of the PK defenition, in general, assuming some kind of sort without explicitly requesting it from the server is probably bad practice) done by the server. this is because of the way the data itself is stored in the sql data table.
So how “Last” should be implemented? Last is actually the first from the end. But how do you define “the end”? lets say you users table which one is the last user? The last registrated user ( order by ID) ? the last registered AND verified user? the last user to log in ? the user with the last lex. name (order by name)?
Conclustion:
If you want to get the last object directly from the sql server (you can use  .ToList().LastOrDefalt() but this will return all the entries and then take the last one – pretty useless with big tables) is to preform OrderByDescending and then take the fist.  :)
Here is generic function that receives “where” expression and orderBy selector and returns the last entry  matching the criteria.
 protected T GetLastBy(Expression> where, Expression> orderBy)
        {       
            return WorkingSet.OrderByDescending(orderBy).FirstOrDefault(where);
        }

เรื่องในหลวง ที่เราอาจจะไม่เคยรู้


เรื่องในหลวง ที่เราอาจจะไม่เคยรู้

1. ทรงพระราชสมภพเวลา 08.45น. 
2. นายแพทย์ผู้ทำคลอดชื่อ ดับลิว สจ๊วต วิตมอร์ ทรงมีน้ำหนักแรกประสูติ 6 ปอนด์ 
3. พระนาม ‘ภูมิพล‘ ได้รับพระราชทานจากพระบาทสมเด็จพระปกเกล้าเจ้าอยู่หัว รัชกาลที่ 7 
4. พระยศเมื่อแรกประสูติ คือ พระวรวงศ์เธอ พระองค์เจ้า ภูมิพลอดุลยเดช 
5. ทรงมีชื่อเล่น ว่า เล็ก หรือ พระองค์เล็ก 
6. ทรงเคยเป็นศิษย์เก่าโรงเรียนมาแตร์เดอี เพราะช่วงพระชนมายุ 5 พรรษาทรงเคยเข้าเรียนที่โรงเรียนแห่งนี้ 1 ปี มีพระนามในใบลงทะเบียนว่า ‘H.H Bhummibol Mahidol’หมายเลขประจำตัว 449 
7. ทรงเรียกสมเด็จพระราชชนนีหรือสมเด็จย่า อย่างธรรมดาว่า ‘แม่‘ 
8. สมัยทรงพระเยาว์ ทรงได้ค่าขนม อาทิตย์ละครั้ง 
9. แม้จะได้เงินค่าขนมทุกอาทิตย์ แต่ยังทรงรับจ้างเก็บผักผลไม้ไปขาย เมื่อได้เงินมาก็นำไปซื้อเมล็ดผักมาปลูกเพิ่ม 
10. สมัยพระเยาว์ทรงเลี้ยงสัตว์หลายชนิดทั้งสุนัข กระต่าย ไก่ นกขุนทอง ลิง แม้แต่งูก็เคยเลี้ยง ครั้งหนึ่งงูตายไปก็มีพิธีฝังศพอย่างใหญ่โต
11. สุนัขตัวแรกที่ทรงเลี้ยงสมัยทรงพระเยาว์เป็นสุนัขไทยทรงตั้งชื่อให้ว่า‘บ๊อบบี้ ‘ 
12. ทรงฉลองพระเนตร(แว่นสายตา)ตั้งแต่พระชันษายังไม่เต็ม 10 ขวบ เพราะครูประจำชั้นสังเกตเห็นว่าเวลาจะทรงจดอะไรจากกระดานดำพระองค์ต้องลุกขึ้นบ่อยๆ 
13. สมัยพระเยาว์ทรงซนบ้าง หากสมเด็จย่าจะลงโทษ จะเจรจากันก่อนว่า โทษนี้ควรตีกี่ที ในหลวงจะทรงต่อรองว่า 3 ทีมากเกินไป 2 ทีพอแล้ว 
14. ระหว่างประทับอยู่ สวิตเซอร์แลนด์นั้นระหว่างพี่น้องจะทรงใช้ภาษาฝรั่งเศส แต่จะใช้ภาษาไทยกับสมเด็จย่าเสมอ 
15. ทรงได้รับการอบรมให้รู้จัก ‘การให้ ‘ โดยสมเด็จย่าจะทรงตั้งกระป๋องออมสินเรียกว่า ‘กระป๋องคนจน ‘ เอาไว้ หากทรงนำเงินไปทำกิจกรรมแล้วมีกำไร จะต้องถูก ‘เก็บภาษี ‘ หยอดใส่กระปุกนี้ 10% ทุกสิ้นเดือนสมเด็จย่าจะเรียกประชุมเพื่อถามว่าจะเอาเงินในกระป๋องนี้ไปทำอะไร เช่น มอบให้โรงเรียนตาบอด มอบให้เด็กกำพร้า หรือทำกิจกรรมเพื่อคนยากจน 
16. ครั้งหนึ่ง ในหลวงกราบทูลสมเด็จย่าว่าอยากได้รถจักรยาน เพราะเพื่อนคนอื่นๆ เขามีจักรยานกัน สมเด็จย่าก็ตอบว่า ‘ลูกอยากได้จักรยาน ลูกก็ต้องเก็บค่าขนมไว้สิ หยอดกระป๋องวันละเหรียญ ได้มาก ค่อยเอาไปซื้อจักรยาน‘ 
17. กล้องถ่ายรูปกล้องแรกของในหลวง คือ Coconet Midget ทรงซื้อด้วยเงินสะสมส่วนพระองค์ เมื่อพระชนม์เพียง 8 พรรษา 
18. ช่วงเกิดสงครามโลกครั้งที่ 2 ทรงปั่นจักรยานไปโรงเรียนแทนรถพระที่นั่ง 
19. พระอัจฉริยภาพของในหลวง มีพื้นฐานมาจาก ‘การเล่น ‘ สมัยทรงพระเยาว์ เพราะหากอยากได้ของเล่นอะไรต้องทรงเก็บสตางค์ซื้อเอง หรือ ประดิษฐ์เอง ทรงเคยหุ้นค่าขนมกับพระเชษฐา ซื้อชิ้นส่วนวิทยุทีละชิ้นๆ แล้วเอามาประกอบเองเป็นวิทยุ แล้วแบ่งกันฟัง 
20. สมเด็จย่าทรงสอนให้ในหลวงรู้จักการใช้แผนที่และภูมิประเทศของไทย โดยโปรดเกล้าฯให้โรงเรียนเพาะช่างทำแผนที่ประเทศไทยเป็นรูปตัวต่อ เลื่อยเป็นชิ้นสี่เหลี่ยมเล็กๆเพื่อให้ทรงเล่นเป็นจิ๊กซอว์ 
21. ในหลวงทรงเครื่องดนตรีได้หลายชนิด เช่น เปียโน กีตาร์ แซกโซโฟน แต่รู้หรือไม่ว่าเครื่องดนตรีชิ้นแรกที่ทรงหัดเล่นคือ หีบเพลง (แอกคอร์เดียน) 
22. ทรงสนพระทัยดนตรีอย่างจริงจังราวพระชนม์ 14-15 พรรษา ทรงซื้อแซกโซโฟนมือสองราคา 300 ฟรังก์มาหัดเล่น โดยใช้เงินสะสมส่วนพระองค์ครึ่งหนึ่ง และอีกครึ่งหนึ่งสมเด็จย่าออกให้ 
23. ครูสอนดนตรีให้ในหลวง ชื่อ เวย์เบรชท์ เป็นชาว อัลซาส 
24. ทรงพระราชนิพนธ์เพลงครั้งแรก เมื่อพระชนมพรรษา 18 พรรษา เพลงพระราชนิพนธ์แรกคือ ‘แสงเทียน ‘ จนถึงปัจจุบันพระราชนิพนธ์เพลงไว้ทั้งหมด 48 เพลง 
25. ทรงพระราชนิพนธ์เพลงได้ทุกแห่ง บางครั้งไม่จำเป็นต้องใช้เครื่องดนตรีช่วย อย่างครั้งหนึ่งทรงเกิดแรงบันดาลพระทัย ทรงฉวยซองจดหมายตีเส้น 5 เส้นแล้วเขียนโน้ตทำนองเพลงขึ้นเดี๋ยวนั้น กลายเป็นเพลง ‘เราสู้‘ 
26. รู้ไหม…? ทรงมีพระอุปนิสัยสนใจการถ่ายภาพเหมือนใคร : เหมือนสมเด็จย่า และ รัชกาลที่5 
27. นอกจากทรงโปรดการถ่ายภาพแล้ว ยังสนพระทัยการถ่ายภาพยนตร์ด้วย ทรงเคยนำภาพยนตร์ส่วนพระองค์ออกฉายแล้วนำเงินรายได้มาสร้างอาคารสภากาชาดไทย ที่ รพ.จุฬาฯรพ.ภูมิพล รวมทั้งใช้ในโครงการโรคโปลิโอและโรคเรื้อนด้วย 
28. ทรงพระราชนิพนธ์เรื่อง ‘นายอินทร์ ‘ และ ‘ติโต ‘ ทรงเขียนด้วยลายพระหัตถ์ แล้วให้เสมียนพิมพ์ แต่ ‘พระมหาชนก‘ ทรงพิมพ์ลงในเครื่องคอมพิวเตอร์ 
29. ทรงเล่นกีฬาได้หลายชนิด แต่กีฬาที่ทรงโปรดเป็นพิเศษได้แก่ แบดมินตัน สกี และ เรือใบ ทรงเคยได้เหรียญทองจากการแข่งขันเรือใบประเภทโอเค ในกีฬาแหลมทอง(ต่อมาเปลี่ยนชื่อเป็น ‘กีฬาซีเกมส์‘) ครั้งที่ 4 ปี พ.ศ.2510 
30. ครั้งหนึ่ง ทรงเรือใบออกจากฝั่งไปได้ไม่นานก็ทรงแล่นกลับฝั่ง และตรัสกับผู้ที่คอยมาเฝ้าฯว่า เสด็จฯกลับเข้าฝั่งเพราะเรือแล่นไปโดนทุ่นเข้า ซึ่งในกติกาการแข่งเรือใบถือว่าฟาวส์ ทั้งๆที่ไม่มีใครเห็น แสดงให้เห็นว่าทรงยึดกติกามากแค่ไหน 
31. ทรงเป็นพระมหากษัตริย์พระองค์แรกของโลกที่ได้รับสิทธิบัตรผลงานประดิษฐ์คิดค้นเครื่องกลเติมอากาศที่ผิวน้ำหมุนช้าแบบทุ่มลอย หรือ ‘กังหันชัยพัฒนา ‘ เมื่อปี 2536 
33. ทรงเป็นผู้ริเริ่มการพัฒนาเชื้อเพลิงน้ำมันจากวัสดุการเกษตรเพื่อใช้เป็นพลังงานทดแทน เช่น แก๊สโซฮอล์,ดีโซฮอลล์ และ น้ำมันปาล์มบริสุทธิ์ ต่อเนื่องเป็นเวลากว่า 20 ! ปีแล้ว 
34. องค์การสหประชาชาติ ได้ถวายรางวัลความสำเร็จสูงสุดด้านการพัฒนามนุษย์ แด่ในหลวงเมื่อ วันที่ 26 พฤษภาคม 2549 เพื่อสดุดีพระเกียรติคุณพระราชกรณียกิจด้านการพัฒนาชีวิตความเป็นอยู่ของประชาชนชาวไทย โดยมี นายโคฟี อันนัน เลขาธิการสหประชาชาติ เดินทางมาถวายรางวัลด้วยตนเอง
35. พระนามเต็มของในหลวง : พระบาทสมเด็จพระปรมินทรา มหาภูมิพลอดุลยเดช มหิตลาธิเบศรรามาธิบดี จักรีนฤบดินทร สยามินทราธิราช บรมนาถบพิตร 
36. รักแรกพบ ของในหลวงและหม่อมสิริกิติ์เกิดขึ้นที่สวิสเซอร์แลนด์ แต่เหตุการณ์ครั้งนั้น สมเด็จพระบรมราชินีนาถฯทรงให้สัมภาษณ์ว่า ‘น่าจะเป็น เกลียดแรกพบ มากกว่ารักแรกพบ เนื่องเพราะรับสั่งว่าจะเสด็จถึงเวลาบ่าย 4 โมง แต่จริงๆแล้วเสด็จมาถึงหนึ่งทุ่ม ช้ากว่าเวลานัดหมายตั้งสามชั่วโมง 
37. ทรงหมั้นกับ ม.ร.ว.สิริกิติ์ กิติยากร เมื่อวันที่ 19 กรกฎาคม 2492 และจัดพระราชพิธีราชาภิเษกสมรส ที่วังสระปทุม เมื่อวันที่ 28 เมษายน 2493 โดยทรงจดทะเบียนสมรสเหมือนคนทั่วไป ข้อความในสมุดทะเบียนก็เหมือนคนทั่วไปทุกอย่าง ปิดอากรแสตมป์ 10 สตางค์ เสียค่าธรรมเนียม 10 บาท 
37. หลังอภิเษกสมรส ทรง ‘ฮันนีมูน ‘ที่หัวหิน 
38. ทรงผนวช ณ พระอุโบสถวัดพระศรีรัตนศาสดาราม ในพระบรมมหาราชวัง เมื่อวันที่ 22 ตุลาคม 2499 และประทับจำพรรษา ณ วัดบวรนิเวศวิหาร เป็นเวลา 15 วัน 
39. ระหว่างทรงผนวช พระอุปัชฌาย์และพระพี่เลี้ยง คือ สมเด็จพระญาณสังวร สมเด็จพระสังฆราช 
40. ของใช้ส่วนพระองค์นั้นไม่จำเป็นต้องแพงหรือต้องแบรนด์เนม ดังนั้นการถวายของให้ในหลวงจึงไม่จำเป็นจะต้องเป็นของแพง อะไรที่มาจากน้ำใจจะทรงใช้ทั้งนั้น 
41. เครื่องประดับ : ในหลวงไม่ทรงโปรดสวมเครื่องประดับ เช่น แหวน สร้อยคอ ของมีค่าต่างๆ ยกเว้น นาฬิกา 
42. พระเกศาที่ทรงตัดแล้ว : ส่วนหนึ่งเก็บไว้ที่ธงชัยเฉลิมพลเพื่อมอบแก่ทหาร อีกส่วนหนึ่งเก็บไว้สร้างวัตถุมงคล เพื่อมอบแก่ราษฎรที่ทำคุณงามความดีแก่ประเทศชาติ 
43. หลอดยาสีพระทนต์ ทรงใช้จนแบนราบเรียบคล้ายแผ่นกระดาษ โดยเฉพาะบริเวณคอหลอด ยังปรากฏรอยบุ๋มลึกลงไปจนถึงเกลียวคอหลอด ซึ่งเป็นผลจากการใช้ด้ามแปรงสีพระทนต์ช่วยรีด และ กดเป็นรอยบุ๋ม 
44. วันที่ในหลวงเสียใจที่สุด คือวันที่สมเด็จย่าเสด็จสวรรคต มีหนังสือเล่าไว้ว่า วันนั้นในหลวงไปเฝ้าแม่ถึงตีสี่ตีห้าพอแม่หลับจึงเสด็จฯกลับเมื่อถึงวัง ทางโรงพยาบาลก็โทรศัพท์มาแจ้งว่า สมเด็จย่าสิ้นพระชนม์แล้ว ในหลวงรีบกลับไปที่โรงพยาบาล เห็นแม่นอนหลับตาอยุ่บนเตียง ในหลวงคุกเข่าเข้าไปกราบที่อกแม่ ซบหน้านิ่งอยู่นานค่อยๆเงยพระพักตร์ขึ้นมาน้ำพระเนตรไหลนอง 
45. โครงการอันเนื่องมาจากพระราชดำริ จนถึงปัจจุบนมีจำนวนกว่า 3,000 โครงการ 
46. ทุกครั้งที่เสด็จฯไปยังสถานต่างๆจะทรงมีสิ่งของประจำพระองค์อยู่ 3 สิ่ง คือ แผนที่ซึ่งทรงทำขึ้นเอง(ตัดต่อเอง ปะกาวเอง) กล้องถ่ายรูป และดินสอที่มียางลบ 
47. ในหลวงทรงงานด้วยพระองค์เองทุกอย่างแม้กระทั่งการโรเนียวกระดาษที่จะนำมาให้ข้าราชการที่เข้าเฝ้าฯถวายงาน 
48. เก็บร่ม : ครั้งหนึ่งเมื่อในหลวงเสด็จฯเยี่ยมโครงการห้วยสัตว์ใหญ่ เมื่อเฮลิคอปเตอร์พระที่นั่งมาถึง ปรากฏว่าฝนตกลงมาอย่างหนัก ข้าราชการและราษฎรที่เข้าแถวรอรับเปียกฝนกันทุกคน เมื่อทรงเห็นดังนั้น จึงมีรับสั่งให้องครักษ์เก็บร่ม แล้วทรงเยี่ยมข้าราชการและราษฎรทั้งกลางสายฝน 
49. ทรงศึกษาลักษณะอากาศทุกวัน โดยใช้ข้อมูลที่กรมอุตุนิยมวิทยานำขึ้นทูลเกล้าฯ ร่วมกับข้อมูลจากต่างประเทศที่หามาเอง เพื่อป้องกันภัยธรรมชาติที่อาจก่อความเสียหายแก่ประชาชน 
50. โครงการส่วนพระองค์ สวนจิตรลดา เริ่มต้นขึ้นจากเงินส่วนพระองค์จำนวน 32,866.73บาท ซึ่งได้จากการขายหนังสือดนตรีที่พระเจนดุริยางค์ จากการขายนมวัว ก็ค่อยๆเติบโตเป็นโครงการพัฒนามาจนเป็นอย่างที่เราเห็นกันทุกวันนี้ 
51. เวลามีพระราชอาคันตุกะเสด็จมาเยี่ยมชมโครงการฯสวนจิตรลดา ในหลวงจะเสด็จฯลงมาอธิบายด้วยพระองค์เอง เนื่องจากทรงรู้ทุกรายละเอียด 
52. ม.ร.ว.คึกฤทธิ์ ปราโมช กราบบังคมทูลถามว่า เคยทรงเหนื่อยทรงท้อบ้างหรือไม่ ในหลวงตอบว่า ‘ความจริงมันน่าท้อถอยอยู่หรอก! บางเรื่องมันน่าท้อถอย แต่ว่าฉันท้อไม่ได้ เพราะเดิมพันของเรานั้นสูงเหลือเกิน เดิมพันของเรานั้นคือบ้านเมือง คือความสุขของคนไทยทั่วประเทศ’ 
53. ทรงนึกถึงแต่ประชาชน แม้กระทั่งวันที่พระองค์ทรงกำลังจะเข้าห้องผ่าตัดกระดูกสันหลังในอีก 5 ชั่วโมง (20 กรกฎาคม 2549) ยังทรงรับสั่งให้ข้าราชบริพารไปติดตั้งคอมพิวเตอร์เดินสายออนไลน์ไว้ เพราะกำลังมีพายุเข้าประเทศ พระองค์จะได้มอนิเตอร์ เผื่อน้ำท่วมจะได้ช่วยเหลือทัน 
54. อาหารทรงโปรด : โปรดผัดผักทุกชนิด เช่น ผัดคะน้า ผัดถั่วงอก ผัดถั่วลันเตา 
55. ผักที่ไม่โปรด : ผักชี ต้นหอม และตังฉ่าย 
56. ทรงเสวย ข้าวกล้อง เป็นพระกระยาหารหลัก 
57. ไม่เสวยปลานิล เพราะทรงเป็นผู้เลี้ยงปลานิลคนแรกในประเทศไทย โดยใช้สระว่ายน้ำในพระตำหนักสวนจิตรลดาเป็นบ่อเลี้ยง แล้วแจกจ่ายพันธุ์ไปให้กรมประมง 
58. เครื่องดื่มทรงโปรด : โปรดโอวัลตินเป็นพิเศษ เคยเสวยวันหนึ่งหลายครั้ง 
59. ทีวีช่องโปรด ทรงโปรดข่าวช่องฝรั่งเศส ของยูบีซี เพื่อทรงรับฟังข่าวสารจากทั่วโลก 
60. ทรงฟัง จส.100 และเคยโทรศัพท์ไปรายงานสถานการณ์ต่างๆใน กทม.ไปที จส.100ด้วย โดยใช้พระนามแฝง 
61. หนังสือที่ในหลวงอ่าน : ตอนเช้าตื่นบรรทม ในหลวงจะเปิดดูหนังสือพิมพ์รายวันทั้งไทยและเทศ ทุกฉบับ และก่อนเข้านอนจะทรงอ่านนิตยสารไทม์ส นิวสวีก เอเชียวีก ฯลฯ ที่มีข่าวทั่วทุกมุมโลก 
62. ร้านตัดเสื้อของในหลวง คือ ร้านยูไลย เจ้าของชื่อ ยูไลย ลาภประเสริฐ ถวายงานตัดเสื้อในหลวงมาตั้งแต่ปี 2501 เมื่อนายยูไลยเสียชีวิต ก็มี ลูกชาย นายสมภพ ลาภประเสริฐ มาถวายงานต่อ จนถึงตอนนี้ก็เกือบ 50 ปีแล้ว 
63. ห้องทรงงานของในหลวง อยู่ใกล้ห้องบรรทม บนชั้น 8 ของตำหนักจิตรลดาฯเป็นห้องเล็กๆ ขนาด 3x4 เมตร ภายในห้องมีวิทยุ โทรทัศน์ โทรศัพท์ โทรสาร คอมพิวเตอร์ เครื่องบันทึกเสียง เครื่องพยากรณ์ แผนที่ ฯลฯ 
64. สุนัขทรงเลี้ยง นอกจากคุณทองแดง สุวรรณชาด สุนัขประจำรัชกาล ที่ปัจจุบันอยู่ที่พระราชวังไกลกังวล แล้ว ยังมีสุนัขทรงเลี้ยงอีก 33 ตัว 
65. ในหลวง เกิดจากคำที่ชาวเหนือใช้เรียกพระบาทสมเด็จพระเจ้าอยู่หัว ว่า ‘นายหลวง ‘ ภายหลังจึงเปลี่ยนเป็น ในหลวง 
66. ทรงเชี่ยวชาญถึง 6 ภาษา คือ ไทย ละติน ฝรั่งเศส อังกฤษ เยอรมัน และ สเปน 
67. อาชีพของในหลวง เมื่อผู้แทนพระองค์ไปติดต่อเอกสารสำคัญใดๆทรงโปรดให้กรอกในช่อง อาชีพ ของพระองค์ว่า ‘ทำราชการ ‘ 
68. ในหลวงทรงพระเนตรเทียมข้างขวา เป็นผลจากอุบัติเหตุทางรถยนต์ที่เมืองโลซานน์ สวิตเซอร์แลนด์ รถพระที่นั่งชนกับรถบรรทุกอย่างแรง ทำให้เศษกระจกเข้าพระเนตรข้างขวา ตอนนั้นมีอายุเพียง 20 พรรษา และทรงใช้พระเนตรข้างซ้ายข้างเดียว ในการทำงานบำบัดทุกข์บำรุงสุขประชาชนชาวไทยมาตลอดกว่า 60 ปี 
69. ครั้งหนึ่งหนังสือพิมพ์อเมริกันลงข่าวลือเกี่ยวกับในหลวงว่า แซกโซโฟนที่ทรงอยู่เป็นประจำนั้นเป็นแซกโซโฟนที่ทำด้วยทองคำเนื้อแท้บริสุทธิ์ ซึ่งได้มีพระราชดำรัสว่า ‘อันนี้ไม่จริงเลย สมมติว่าจริงก็จะหนักมาก ยกไม่ไหวหรอก ‘ 
70. ปีหนึ่งๆ ในหลวงทรงเบิกดินสอแค่ 12 แท่ง ใช้เดือนละแท่ง จนกระทั่งกุด 
71. หัวใจทรงเต้นไม่ปรกติ ในหลวงเคยประชวรหนักจนหัวใจเต้นไม่ปกติ เนื่องจากติดเชื้อไมโครพลาสม่า ขณะขึ้นเยี่ยมราษฎรที่อำเภอสะเมิงติดต่อกันหลายปี 
72. รู้หรือไม่ว่า ในหลวงเป็นคนประดิษฐ์รูปแบบฟอนต์ภาษาในคอมพิวเตอร์ที่ใช้กันอยู่ทุกวันนี้อย่าง ฟอนต์จิตรลดา ฟอนต์ภูพิงค์ 
73. ในนิทรรศการเฉลิมพระเกียรติพระบาทสมเด็จพระเจ้าอยู่หัว เนื่องในโอกาสฉลองสิริราชสมบัติครบ 60 ปี จัดขึ้นที่อิมแพ็ค มีประชาชนเข้าชมรวม 6 ล้านคน 
74. ในหลวงเริ่มพระราชทานปริญญาบัตรครั้งแรกเมื่อปี พ.ศ.2493 จน 29 ปีต่อมาจึงมีผู้คำนวณว่าเสด็จพระราชทานปริญญาบัตร 490 ครั้ง ประทับครั้งละ 3 ชม. ทรงยื่นพระหัตถ์พระราชทาน 470,000 ครั้ง น้ำหนักปริญญาบัตรฉบับละ 3 ขีด รวมน้ำหนักทั้งหมด 141 ตัน 
75. ดอกไม้ประจำพระองค์ คือ ดอกดาวเรือง 
76. สีประจำพระองค์คือ สีเหลือง 
77. นั่งรถหารสอง : ทรงรับสั่งกับข้าราชบริพารเสมอว่า การนั่งรถคนละคันเป็นการสิ้นเปลือง จึงให้นั่งรวมกัน ไม่โปรดให้มีขบวนรถยาวเหยียด 

ยกเลิกการเกณฑ์ทหารในไทย อีกหนึ่งข้อสงสัยที่ยังไม่ยุติ

ยกเลิกการเกณฑ์ทหารในไทย อีกหนึ่งข้อสงสัยที่ยังไม่ยุติ





เรียบเรียงข้อมูลโดยกระปุกดอทคอม


                สำหรับหลายๆ คน ที่เข้าข่ายต้องเกณฑ์ทหาร หรืออยู่ในแวดวงทหารไทย ย่อมต้องเคยได้ยินข่าวลือเรื่อง ยกเลิกการเกณฑ์ทหาร มาบ้าง แต่บางคนอาจยังไม่เคยได้ยินข่าวดังกล่าวมาก่อนหน้านี้ ดังนั้นกระปุกดอทคอมจึงได้รวบรวมข้อมูลเกี่ยวกับเรื่องนี้มาฝากกันค่ะ ก่อนอื่นเรามาดูรายละเอียดคร่าว ๆ เกี่ยวกับการเกณฑ์ทหารกันก่อนนะคะ

               เกณฑ์ทหาร (Conscription) คือ การเรียกใช้แรงงานอย่างไม่สมัครใจโดยฝ่ายปกครอง โดยมีรายงานว่าในหลายประเทศได้ยกเลิกการเกณฑ์ทหารไปแล้ว เช่น สหรัฐอเมริกา ฝรั่งเศส ญี่ปุ่น สเปน เบลเยียม โครเอเชีย เลบานอน นิวซีแลนด์ โรมาเนีย เลบานอน โปแลนด์ นิวซีแลนด์ เนเธอร์แลนด์ ออสเตรเลีย เป็นต้น ส่วนประเทศที่ยังคงมีการเกณฑ์ทหารอยู่ เช่น จีน ภูฏาน ไทย อัลจีเรีย อิสราเอล (ทั้งชายและหญิง) เกาหลีเหนือ เกาหลีใต้ คิวบา (ทั้งชายและหญิง) และอิหร่าน เป็นต้น

              เหตุผลที่ในบางประเทศได้มีการยกเลิกการเกณฑ์ทหาร หรือยังคงมีการเกณฑ์ทหารอยู่ อาจขึ้นอยู่กับปัจจัยหลายประการ โดยในบางประเทศได้มองข้อเสียของการเกณฑ์ทหารว่า ทำให้เกิดความความสิ้นเปลืองทางเศรษฐกิจในยามที่ประเทศสงบสุข อีกทั้งยังขัดกับปฏิญญาสากล ว่าด้วยสิทธิมนุษยชน รวมถึงขัดกับเสรีภาพของประชาชน

             ขณะที่ในบางประเทศมองว่า การเกณฑ์ทหารมีข้อดี คือ เป็นการเตรียมพร้อมสำหรับประเทศที่ยังมีภาวะสงคราม หรือคาดว่าอาจจะเกิดสงครามได้ในอนาคต ทั้งนี้ พบว่า หากประเทศที่ยกเลิกการเกณฑ์ทหารแล้วได้เกิดภาวะฉุกเฉิน หรือมีภาวะสงครามเกิดขึ้น ประเทศเหล่านั้นจะอาศัยกองกำลังทหารอาชีพและอาสาสมัครเข้ามาช่วยจัดการความสงบเรียบร้อยเป็นการชั่วคราว

            ทั้งนี้ เรื่องการยกเลิกการเกณฑ์ทหารในประเทศไทยนั้น ไม่มีที่มาระบุแน่ชัดว่าข่าวดังกล่าวมาจากแหล่งใด แต่ล่าสุด เมื่อวันที่ 4 มกราคม 2556 ที่ผ่านมา ผู้ใช้บัญชีเฟซบุ๊ก นายหอกลอง ณ. สนามหลวง ที่มักเผยแพร่ข่าวสารของกระทรวงกลาโหม ได้โพสต์ข้อความระบุว่า “กระทรวงกลาโหม (โดยกรมการสรรพกำลังกลาโหม) เตรียมศึกษาระบบการเกณฑ์ทหาร เพื่อปรับเปลี่ยนจากการเกณฑ์เป็นแบบสมัครใจ ตามแนวทางการพัฒนาระบบกำลังสำรอง ของรัฐมนตรีว่าการกระทรวงกลาโหม เพื่อให้ได้ทหารกองประจำการ (ทหารเกณฑ์) ที่มีประสิทธิภาพ มีความต้องการที่จะเป็นทหารอย่างแท้จริง เรื่องนี้ถ้าสำเร็จนอกจากจะแก้ปัญหาคนหนีทหารได้แล้ว ยังได้ทหารอาชีพมาทำงานอีกด้วย”

            อย่างไรก็ตาม แม้เฟซบุ๊กดังกล่าวไม่มีการยืนยันแหล่งที่มาของข่าวอย่างชัดเจน แต่ประเด็นข่าวนี้ได้สร้างความสนใจให้กับหลายฝ่าย เนื่องจากในปัจจุบันได้มีผู้แสดงความคิดเห็นว่าต้องการให้มีการยกเลิกการเกณฑ์ทหารในประเทศไทยเกิดขึ้น เช่น มีการตั้ง เฟซบุ๊ก Abolish Conscription in Thailand! ยกเลิกการเกณฑ์ทหารในประเทศไทย  โดยมีจำนวนผู้กดไลค์เพื่อติดตามแฟนเพจดังกล่าว ประมาณพันกว่าคน (8 มกราคม)
                ดังนั้น อาจกล่าวได้ว่า การยกเลิกการเกณฑ์ทหาร น่าจะมาจากความต้องการของผู้ที่เห็นค้านในเรื่องดังกล่าว และต้องการให้เรื่องนี้เกิดขึ้นในประเทศไทย แต่จากการนำเสนอข่าวของ  เฟซบุ๊ก นายหอกลอง ณ. สนามหลวง ) ถือว่าน่าสนใจเป็นอย่างมาก และเชื่อว่าหากเรื่องดังกล่าวมีความคืบหน้าใด ๆ กระทรวงกลาโหม น่าจะมีการแถลงข่าวให้ทราบข้อมูลความคืบหน้ามากกว่านี้ ดังนั้นคงต้องติดตามดูกันต่อไปว่า การยกเลิกการเกณฑ์ทหารในประเทศไทยนั้น จะมีแนวโน้มที่จะเกิดขึ้นในอนาคตหรือไม่



SingleOrDefault() Vs. FirstOrDefault() in LINQ Query

SingleOrDefault() Vs. FirstOrDefault() in LINQ Query



Single() / SingleOrDefault()

First () / FirstOrDefault()
Single() - There is exactly 1 result, an exception is thrown if no result is returned or more than one result. 
SingleOrDefault() – Same as Single(), but it can handle the null value.
First() - There is at least one result, an exception is thrown if no result is returned.
FirstOrDefault() - Same as First(), but not thrown any exception or return null when there is no result.
Single() asserts that one and only one element exists in the sequence.
First() simply gives you the first one.
When to use
Use Single / SingleOrDefault() when you sure there is only one record present in database or you can say if you querying on database with help of primary key of table.
When to use
Developer may use First () / FirstOrDefault() anywhere,  when they required single value from collection or database.
Single() or SingleOrDefault() will generate a regular TSQL like "SELECT ...".
The First() or FirstOrDefault() method will generate the TSQL statment like "SELECT TOP 1..."
In the case of Fist / FirstOrDefault, only one row is retrieved from the database so it performs slightly better than single / SingleOrDefault. such a small difference is hardly noticeable but when table contain large number of column and row, at this time performance is noticeable.
SingleOrDefault() Vs. FirstOrDefault() in LINQ Query

linq.js - LINQ for JavaScript

Project Description
linq.js - LINQ for JavaScript

Features
  • implement all .NET 4.0 methods and many extra methods (inspiration from RxAchiral, Haskell, Ruby, etc...)
  • complete lazy evaluation
  • full IntelliSense support for VisualStudio
  • two versions - linq.js and jquery.linq.js (jQuery plugin)
  • support Windows Script Host
  • binding for Reactive Extensions for JavaScript(RxJS) and IntelliSense Generator -> see documentation
  • NuGet install support(linq.jslinq.js-jQuerylinq.js-Bindings)

90 Methods

Aggregate, All, Alternate, Any, Average, BufferWithCount, CascadeBreadthFirst, CascadeDepthFirst, Catch, Choice, Concat,
Contains, Count, Cycle, DefaultIfEmpty, Distinct, Do, ElementAt, ElementAtOrDefault, Empty, Except, Finally, First, FirstOrDefault, 
Flatten, ForEach, Force, From, Generate, GetEnumerator, GroupBy, GroupJoin, IndexOf, Insert, Intersect, Join, Last, LastIndexOf,
LastOrDefault, Let, Matches, Max, MaxBy, MemoizeAll, Min, MinBy, OfType, OrderBy, OrderByDescending, Pairwise, PartitionBy, 
Range, RangeDown, RangeTo, Repeat, RepeatWithFinalize, Return, Reverse, Scan, Select, SelectMany, SequenceEqual, Share, Shuffle,
Single, SingleOrDefault, Skip, SkipWhile, Sum, Take, TakeExceptLast, TakeFromLast, TakeWhile, ThenBy, ThenByDescending, ToArray,
ToDictionary, ToInfinity,ToJSON, ToLookup, ToNegativeInfinity, ToObject, ToString, Trace, Unfold, Union, Where, Write, WriteLine, Zip

Starting linq.js ver.3.0.0-beta!(2012/07/19)

Get the ver.3.0.4-Beta5 @2013/06/20
or NuGet Install-Package linq.js -Pre, linq.js-jQuery -Pre, linq.js-RxJS -Pre, linq.js-QUnit -Pre
Now TypeScript Generics(0.9) support!

Please try it! and give me a feedback!
http://linqjs.codeplex.com/discussions/376207

Query objects or json

  • sample from http://twitter.com/statuses/public_timeline.json
var jsonArray = [
    { "user": { "id": 100, "screen_name": "d_linq" }, "text": "to objects" },
    { "user": { "id": 130, "screen_name": "c_bill" }, "text": "g" },
    { "user": { "id": 155, "screen_name": "b_mskk" }, "text": "kabushiki kaisha" },
    { "user": { "id": 301, "screen_name": "a_xbox" }, "text": "halo reach" }
]
// ["b_mskk:kabushiki kaisha", "c_bill:g", "d_linq:to objects"]
var queryResult = Enumerable.From(jsonArray)
    .Where(function (x) { return x.user.id < 200 })
    .OrderBy(function (x) { return x.user.screen_name })
    .Select(function (x) { return x.user.screen_name + ':' + x.text })
    .ToArray();
// shortcut! string lambda selector
var queryResult2 = Enumerable.From(jsonArray)
    .Where("$.user.id < 200")
    .OrderBy("$.user.screen_name")
    .Select("$.user.screen_name + ':' + $.text")
    .ToArray();

High compatibility with C# Linq

// C# LINQ (delegate)
Enumerable.Range(1, 10)
    .Where(delegate(int i) { return i % 3 == 0; })
    .Select(delegate(int i) { return i * 10; });
// linq.js - anonymous function
Enumerable.Range(1, 10)
    .Where(function(i) { return i % 3 == 0; })
    .Select(function(i) { return i * 10; });
// C# LINQ (lambda)
Enumerable.Range(1, 10).Where(i => i % 3 == 0).Select(i => i * 10);
// linq.js - lambda expression
Enumerable.Range(1, 10).Where("i => i % 3 == 0").Select("i => i * 10");
// $ is default iterator variable like Scala's "_" or Groovy's "it"
Enumerable.Range(1, 10).Where("$ % 3 == 0").Select("$ * 10");
 // "" is shorthand of "x => x" (identity function)
Enumerable.Range(4, 7).Join(Enumerable.Range(8, 5), "", "", "outer,inner=>outer*inner");

// Enumerable.From is wrap from primitive array, string(to charArray), object(to KeyValuePair[]) etc..
var array = [100, 200, 30, 40, 500, 40, 200];
var ex1 = Enumerable.From(array).Distinct().ToArray(); // [100, 200, 30, 40, 500]
var ex2 = Enumerable.From("foobar").ToArray(); // ["f", "o", "o", "b", "a", "r"];
var ex3 = Enumerable.From({foo:10, bar:20}).ToArray(); // [{Key:"foo",Value:10}, {Key:"bar",Value:20}]

// C# - AnonymousType
array.Select((val, i) => new { Value = val, Index = i });
// linq.js - object literal
Enumerable.From(array).Select("val,i=>{Value:val, Index:i}")

jQuery plugin version

// $.Enumerable
$.Enumerable.Range(1, 10).Where("$%2==0").ForEach("alert($)");

// TojQuery - Enumerable to jQuery
$.Enumerable.Range(1, 10)
    .Select(function (i) { return $(").text(i)[0] })
    .TojQuery()
    .appendTo("#select1");

// toEnumerable - jQuery to Enumerable
var sum = $("#select1").children()
    .toEnumerable()
    .Select("parseInt($.text())")
    .Sum(); // 55

linq-jquery.jpg

IntelliSense vsdoc

linqjs_intellisense.jpg

video - using with Visual Studio 2010



video - how to debug linq.js


with Windows Script Host

// get folder name and file name...

var dir = WScript.CreateObject("Scripting.FileSystemObject").GetFolder("C:\\");
 
// normally
var itemNames = [];
for (var e = new Enumerator(dir.SubFolders); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}
for (var e = new Enumerator(dir.Files); !e.atEnd(); e.moveNext())
{
    itemNames.push(e.item().Name);
}

// linq.js
var itemNames2 = Enumerable.From(dir.SubFolders).Concat(dir.Files).Select("$.Name").ToArray();