หน้าที่ของ trunk, branch และ tag ใน Subversion

October 13th, 2009

ส่วนที่สำคัญคือ trunk, branches, และ tags ที่จริงแล้วชื่อพวกนี้ไม่ได้เป็นข้อบังคับหรือว่าอะไรเลย ไม่ได้มีความหมายพิเศษต่อการทำงานของ SVN ด้วย แต่ว่าเป็นอะไรที่คนส่วนใหญ่เค้าตกให้ไปในทางเดียวกัน แต่ใน SVN ก็จะมองเป็นโฟลเดอร์ธรรมดาๆ ดังนั้นเราจึงควรทำอะไรตามคนส่วนใหญ่ จะได้สื่อสารกันได้ง่ายๆ^^

คำว่า trunk และ branches มาจากส่วนประกอบของต้นไม้ คือ ลำต้น และ กิ่ง โดยลำต้น

trunk ก็จะหมายถึงสายการพัฒนากลางหรือสายพัฒนาหลัก และเวอร์ชันล่าสุดของโปรเจกก็มักจะอยู่ที่นี่ ถ้าอยากได้ซอร์สโค้ดของโปรเจคก็ควรจะ check out จากที่นี่ครับ และ trunk ก็จะถูกคาดหวังว่าจะสามารถนำไป build และ compile เพื่อใช้งานได้

branch เป็นกิ่งก้านสาขาที่แตกออกมา (ในกรณีปกติก็คงแตกออกมาจาก trunk นั่นแหละ) อาจจะแตกออกมาเพื่อให้คนๆหนึ่งไปรับผิดชอบ feature หนึ่งๆ เพราะเกรงว่าการแก้ไขโดยคนนั้นๆทำไปทำมาจะทำให้ trunk เจ๊ง (คอมไพล์ไม่ผ่าน) ก็เลยให้ไปทำใน branch ซะ แน่ใจว่าเสร็จแล้วค่อยเอามารวม (merge)

tag อันนี้แปลง่ายๆคือมันเป็น snapshot (ง่ายตรงไหนวะ …) คือเหมือนเป็นการบันทึก state ณ เวลาหนึ่งๆไว้นั่นเอง มักถูกใช้ในการเก็บเวอร์ชันต่างๆไว้ เป็นต้นว่า 1.0.0 ตอน release เวอร์ชัน 1.0.0 เป็นต้น ถ้าทำไปเรื่อยๆจนถึงเวอร์ชัน 2.1 แล้ว อยากดูโค้ดตอนที่ release 1.0.0 ว่าเป็นยังไงก็เปิด tags/1.0.0 ได้

ทั้งการทำ branch และ tag นั้น เป็นเพียงการ copy trunk ไปใส่ไว้ใน branches และ tags เท่านั้น ซึ่งการ copy ผ่าน SVN มันก็จะเป็นแค่การคัดลอก reference มา ดังนั้นจึงทำได้เร็วมาก และหายห่วงเรื่องไฟล์ซ้ำซ้อนได้เลย

สำหรับผู้ใช้งานโทรศัพท์มือถือ Nokia

October 9th, 2009

พอดีมือถือตัวเก่าเริ่มมีปัญหาครับเลยกำลังหาข้อมูลของมือถือ และรหัสการตรวจสอบของ Nokia ครับ

  1. *#0000# – แสดงเวอร์ชั่นของโปรแกรมบนโทรศัพท์มือถือ
  2. *#06# – ตรวจสอบ IMEI (International Mobile Equipment Identity)
  3. *#7780# – Reset ค่าของโทรศัพท์มือถือเป็นค่าที่ตั้งจากโรงแรม
  4. *#67705646# This will clear the LCD display (operator logo)
  5. *#2820# Bluetooth device address
  6. *#746025625# Sim clock allowed status
  7. *#62209526# แสดง MAC address ของระบบ LAN adapter. (ถ้ามี WLAN)
  8. #pw+1234567890+1# Shows if sim have restrictions
  9. *#7328748263373738# ยกเลิกรหัส security code (ค่าปกติคือ 12345)
  10. *#92702689# จะบอกเวลาการใช้งานของเครื่องทั้งหมด

เอาไปลองทดสอบกันนะครับ

ใช้ css กำหนดให้ไม่ต้องแสดงเวลาพิมพ์

September 24th, 2009

กรณีเมื่อมีปุ่มสำหรับกดสั่งพิมพ์หน้าเว็บเพจ หรือหน้ารายงาน ตัวอย่างเช่น

<input type=”button” name=”button” id=”button” value=”Print” onclick=”doPrint();” />

เราสามารถกำหนด ไม่ให้แสดงปุ่มดังกล่าว ในหน้าที่พิมพ์ได้ โดยการใช้ attribute ชื่อ media โดยกำหนด media=”print” ดังนี้
แบบที่ 1
<style type=”text/css” media=”print”>
input{ display:none; }
</style>
คำสั่งนี้จะควบคุมไปถึง input ต่างๆ

แบบที่ 2
@media print {#notprint { display:none; }}

ต้องการให้ส่วนไหนไม่พิมพ์ออกมาก็ให้สร้างมาตามตัวอย่างครับ จากตัวอย่างจะไม่ให้ tag ไหนก็ตามที่ใช้ id notprint ไม่ให้พิมพ์ออกมาครับ