Thursday, June 2, 2016

การโยงข้อความ หรือลิงค์ ด้วย markdown

การสร้างลิงค์และการอ้างอิง

การโยงข้อความ

การโยงข้อความ หรือ URL ใน markdown นั้น สามารถทำได้คล้ายกับการโยงข้อความในภาษา HTML
และโค้ดที่ใช้ก็มีลักษณะคล้ายกับในภาษา HTML อีกด้วย
เราสามารถพิมพ์ URL ลงไปในรูปแบบใดก็ได้ ตัว markdown จะทำการแสดง URL นั้นให้เป็นลิงค์ที่สามารถคลิกได้ทันที เช่น
http://someurl
<http://someurl>  
<somebbob@example.com>
http://someurl
http://someurl
somebbob@example.com

การฝัง URL ลงไปในข้อความที่ต้องการ

การฝัง URL ลงไปในข้อความที่ต้องการ เราสามารถพิมพ์ข้อความที่ต้องการฝังลงใน [] และต่อด้วย URL ที่ต้องการภายใน ()
ชี้ลิงค์ด้วยข้อความ [ข้อความ](http://someurl)
ข้อความ

การสร้างลิงค์สำหรับอ้างอิง

เราสามารถสร้างลิงค์สำหรับอ้างอิงในท้ายย่อหน้าได้โดยใช้
ท่านสามารถอ่านรายละเอียดเพิ่มเติมได้ที่ เว็บไซต์ที่ต้องการ หรือ ที่นี่
โดย URL อ้างอิงที่เราเขียนไว้ท้ายย่อหน้า จะไม่ถูกแสดงในข้อความจริง วิธีนี้ช่วยให้การกลับมาแก้ไข URL ที่ในย่อหน้าที่ต้องการได้สะดวก และเป็นระเบียบมากขึ้น
[1]: http://url
[2]: http://another.url "เว็บที่นี่"

การเชื่อมโยง

การเชื่อมโยงไปยังตำแหน่งข้อความที่ต้องการ

การเชื่อมโยง หรือ anchor เราสามารถกำหนดลิงค์เชื่อมโยง ไปตำแหน่ง anchor ได้โดยใช้ syntax คล้ายกับในภาษา HTML โดยข้อความที่ถูกเชื่อมโยงจะแสดงเป็นข้อความขนาดเล็ก คล้ายกับการอ้างอิงไปยังบรรณานุกรมในหนังสือ
ชาวตรังใจกว้าง[1][#3]
<a id="3">ข้อความอธิบายเพิ่มเติม</a>
ชาวตรังใจกว้าง 1
คัดลอกมาจากหนังสือ…

การเชื่อมโยงไปยัง Heading

นอกจากนี้ markdown ยังสร้างวิธีเชื่อมโยงไปยังหัวข้อที่เราได้ทำการระบุ Heading เอาไว้ โดยพิมพ์ชื่อหัวข้อได้โดยตรง (หากหัวข้อมีการเว้นวรรค ให้ใช้ ขีด - แทนวรรค)
กลับไปอ่าน [การเชื่อมโยงไปยัง Heading][]
กลับไปอ่าน หัวข้อ

การสร้างสารบัญ

นอกจากนี้ใน markdown ยังมีระบบทำรายการสารบัญ หรือ table of content (TOC) โดยจะดึงหัวข้อที่เราได้ใส่ # เพื่อกำหนด Heading ระดับต่างๆ มาเป็นหัวข้อภายในสารบัญ การทำสารบัญชีทำได้โดยใช้โค้ดสั้นๆ คือ
    [toc]

Friday, February 19, 2016

พิมพ์ unicode ลงใน Linux

ปกติเราจะรู้กันใน Windows อยู่แล้วว่าถ้าเราต้องการจะพิมพ์ตัวอักษรพิเศษ (unicode) ให้กด ALT+รหัส unicode ที่ต้องการ แต่ใน Linux นั้นจะมีวิธีที่แตกต่างออกไป คือ

  1. กด Ctrl+Alt+u ค้างไว้ จะปรากฏอักษรรูป u̲
    ̲u
  2. พิมพ์รหัส unicode ต่อท้ายจนครบ
    ̲u2713
  3. กด spacebar เราจะได้ unicode ตามที่เราต้องการ

เช่นเดียวกันบน OS อื่นๆ เราสามารถเลือกตัวอักษรพวกนี้โดยตรงจากโปรแกรมต่างๆ ได้เลย เช่น gucharmap, kcharselect

Thursday, November 19, 2015

สร้างตารางกับ Markdown

ส่วนใหญ่ท่านๆ ที่หลงเข้ามาในนี้ก็คงรู้จัก markdown กันอยู่แล้วผมขอผ่านเนื้อหาเบื้องต้นไปล่ะกันครับ

เนื้อหา markdown ในหน้านี้รองรับเฉพาะ Markdown Extra และ GFM เท่านั้น

ทีนี้ การสร้างตารางใน markdown น้้นสามารถทำได้ง่ายๆ โดยใช้ pipe (|) พิมพ์ลงไปเหมือนวาดตาราง โดย pipe หนึ่งคู่แทนหนึ่งคอลัมดังตัวอย่าง

|หัวข้อ1|หัวข้อ2|
|-----|-----|   
|ค่าที่ 1|ค่าที่ 2|
|ค่าที่ 3|ค่าที่ 4| 
หัวข้อ1 หัวข้อ2
ค่าที่ 1 ค่าที่ 2
ค่าที่ 3 ค่าที่ 4

ทั้งนี้เราสามารถใส่รูปแบบตัวอักษรของ markdown ลงไปในตารางได้เลย

|*หัวข้อ1*|**หัวข้อ2**|
|-----|-----|   
|<u>ค่าที่ 1</u>|ค่าที่ 2|
|ค่าที่ 3|ค่าที่ 4| 
หัวข้อ1 หัวข้อ2
ค่าที่ 1 ค่าที่ 2
ค่าที่ 3 ค่าที่ 4

เรายังสามารถเลือกการจัดเรียงของข้อความในตารางได้โดยใช้ colon (:)

|*ชิดซ้าย*|**เข้ากลาง**|ชิดขวา|
|:------|:--------:|----:|
|<u>ค่าที่ 1</u>|ค่าที่ 2|ค่าที่ 3|
|ค่าที่ 3|ค่าที่ 4|ค่าที่ 5|
ชิดซ้าย—— —เข้ากลาง— ——ชิดขวา
ค่าที่ 1 ค่าที่ 2 ค่าที่ 3
ค่าที่ 3 ค่าที่ 4 ค่าที่ 5

เนื่องจาก markdown ตัวที่ผมเลือกใช้นั้นไม่รองรับตารางที่ไม่มีหัวตาราง ดังตัวอย่างข้างล่างผมไม่สามารถปล่อยให้หัวตารางว่าง หรือใช่ white space ลงไปได้ซึ่งทำให้การแสดงผลตารางไม่สมบูรณ์

|| |
|-----|-----|   
|ค่าที่ 1|ค่าที่ 2| 
|ค่าที่ 3|ค่าที่ 4|
ค่าที่ 1
ค่าที่ 3

แต่เราสามารถใช้เทคนิคหลีกเลี่ยงเล็กน้อยด้วยการเพิ่มหัวข้อให้มากกว่าตารางจริงทิ้งเอาไว้ได้

|| ||
|-----|-----|   
|ค่าที่ 1|ค่าที่ 2| 
|ค่าที่ 3|ค่าที่ 4|
ค่าที่ 1 ค่าที่ 2
ค่าที่ 3 ค่าที่ 4

หมดแล้วนะครับนะสำหรับเกร็ดเล็กเกร็ดน้อยของตารางในวันนี้ ใครมีอะไรแลกเปลี่ยนหรือสงสัยก็สามารถมาแบ่งปันกันได้เลยนะครับ

Written with StackEdit

Tuesday, June 30, 2015

Linux Mint แก้ bug LibreOffice แสดงตัวอักษรภาษาไทยเป็นสี่เหลี่ยม

LibreOffice 4.4.X แสดงส่วนของตัวอักษรที่ต้องแสดงภาษาไทยเป็นตัวสี่เหลี่ยม

enter image description here

ให้ไปตั้งค่า Linux Mint ที่ System Setting > Font
โดยค่าเริ่มต้นจะเป็น Noto Sans ให้เลือกเป็นฟอนต์ Noto Sans Thai

Linux Mint 17.1

Written with StackEdit.

Friday, July 18, 2014

ใช้ Intellji หรือ Android studio แบบไม่ใช้เ มาส์กัน (ภาคแรก)

Android studio หรือ Intellji IDEA ถือว่าเป็นหนึ่งในเครื่องมือสำหรับการพัฒนา Android application ที่กำลังได้รับความนิยมอยู่ในขณะนี้ ซึ่ง ide ตัวนี้ก็มีฟังก์ชันช่วยเหลือการเขียนโค้ดอยู่มากมาย ไม่ว่าจะเป็น auto complete , replace occurrence , repeat code style ฯลฯ และสิ่งหนึ่งที่ ide ตัวนี้ชูจุดเด่นก็คือระบบ Keymap

Keymap

keymap หรือ shortcut key ที่เรารู้จักกันทั่วไปนั่นเองซึ่งปกติแล้ว shortcut key ก็เป็นฟังก์ชันพื้นฐานที่ช่วยให้เราเข้าถึงเมนูหรือคำสั่งต่างๆ ของโปรแกรมได้สะดวกรวดเร็วโดยการลัดขั้นตอนในการเข้าถึงคำสั่งแต่ะละตัว แต่ใน Android studio ตัวนี้ keymap นั้นจะช่วยให้เราเขียนโปรแกรมหรือเข้าถึงฟังก์ชันต่างๆ ของโปรแกรมโดยไม่ต้องจับเมาส์เลย โดยเราจะมาเริ่มต้นที่พื้นฐานภายใน editor กันก่อนเลย (ปุ่มลัดต่างๆ ผมจะใช้ Default for GNOME keymap เป็นตัวอ้างอิง แต่บางปุ่มอาจจะไปชนกับปุ่มลัดของ OS ได้ให้ระวังด้วยครับ)

Editor navigation

ในวันนี้เราจะมาเริ่มที่ตัว editor ซึ่งเป็นโต๊ะทำงานศักดิ์สิทธิ์ของเรากันก่อน สิ่งที่เราคุ้นเคยอยู่แล้วก็คือการเลื่อน cursor ขึ้นลงโดยใช้ปุ่มลูกศร และการใช้ปุ่ม Pageup Pagedown เพื่อเลื่อนหน้าขึ้นลงซึ่งเป็นฟังก์ชันของ text editor ธรรมดาๆ ทีนี้เรามาลองอะไรใหม่ๆ ที่ Android studio มีให้กันดีกว่า

  1. เลื่อนไปดูหน้าจอโดยไม่เลื่อน cursor
    สามารถทำได้โดยกด Ctrl+ชึ้น,ลง จะเป็นการเลือ่นเฉพาะหน้าจอสำหรับย้อนไปดู field หรือชื่อ method ที่เราลืมก็ได้

  2. เลื่อนไปที่ method
    กดปุ่ม Alt+ขึ้น,ลง เพื่อเลื่อนหน้าจอไปที่ method ที่อยู่ก่อนหน้าหรือถัดไป

  3. เลื่อนไปที่ structure ที่ต้องการ
    กดปุ่ม Ctrl+F12 เพื่อเลื่อนหน้าจอไปยัง structure บนไฟล์ที่เปิดแก้ไขอยู่

  4. ย่อ/ขยาย method
    กดปุ่ม Ctrl+ เครื่องหมาย +,- เพื่อย่อหรือขยาย method หรือ comment ที่ cursor ของเราอยู่ได้

  5. เลื่อนไปที่ประวัติ cursor
    ทุกครั้งที่เราเลื่อนตำแหน่ง cursor โดยใช้ keymap โปรแกรมจะจดจำตำแหน่งของ cursor ไว้ตลอด โดยเราสามารถเลื่อนตำแหน่งไปยังประวัติของ cursor ได้โดยกดปุ่ม Alt+Shift+ซ้าย,ขวา

  6. เลื่อนไป warning หรือ error
    เราสามารถตรวจเช็คโปรแกรม หรือหาตำแหน่งที่ error โดยการกด F2 เพื่อนไป error, warning ถัดไป หรือกด Shift+F2 ไปย้อนกลับ

  7. สร้าง/เลื่อนไปยังตำแหน่ง bookmark
    เราสามารถตรวจทำ bookmark ตำแหน่งที่เราต้องกลับไปแก้ไขบ่อยๆ ได้โดยกด Ctrl+Shift+หมายเลข เพื่อสร้างตำแหน่ง bookmark และปุ่ม Ctrl+หมายเลข เพื่อไปยังตำแหน่ง bookmark ที่สร้างไว้ได้

    รูป แสดงตำแหน่ง bookmark

  8. สลับแท็บบน editor ที่เปิดอยู่
    ถ้าเราเปิดไฟล์เอาไว้ โปรแกรมจะแสดงไฟล์ที่เราเปิดอยู่ในรูปแบบของแท็บ เราสามารถสลับไปมาระหว่างแท็บโดยการกด Alt+ซ้าย,ขวา ได้

    รูป แสดงแท็บบน editor

จบแล้วครับสำหรับปุ่มลัดทั้ง 7 รายการนี้ จริงๆ ก็ยังมีปุ่มลัดในการเลื่อนหน้าจอ editor เฉพาะทางอีกมากที่ผมยังไม่ได้กล่าวถึง และ keymap อื่นๆ สำหรับแก้ไขข้อความภายใน editor ก็มีเยอะไม่แพ้กัน แต่ผมขอไม่กล่าวถึงเพราะสไตล์การทำงานของแต่ละคนค่อนข้างต่างกัน ส่วนในภาคต่อไปเราจะมาดูปุ่มลัดสำหรับการเปลี่ยน focus ใน tool window หรือระหว่าง view กันว่ามีอะไรบ้างไว้เจอกันใหม่ครับ 

Monday, September 2, 2013

UUID (Universally unique identifier) กับ Bluetooth Protocol

UUID เป็นกลุ่มตัวเลขขนาด 16-octet หรือ 128-bit หรือในรูปแบบ 32 hexadecimal charactor ที่กำหนดขึ้นมาเพื่อใช้ในงานทางซอฟต์แวร์  โดยจุดประสงค์ของ UUID คือการรับประกันว่าสิ่งของที่ถูกระบุด้วย UUID นี้จะไม่ซ้ำกับสิ่งอื่นๆ (เป็นเอกลักษณ์) เพราะโดยทางเทคนิคเป็นไปได้ยากที่จะซ้ำกัน  โดยมีการนำไปใช้งานที่หลากหลาย เช่น ระบุพาร์ติชั่นในระบบ Linux ระบุช่องทางการเชื่อมต่อ (RPC) เป็นต้น
ตัวเลข UUID แบ่งการใช้งานได้ออกเป็น 4 กลุ่มใหญ่ๆ คือ

Version 1 เป็นกลุ่มที่พบได้ในงานทางเครือข่ายทั่วไป โดยตัวเลขจะถูกสร้างขึ้นจาก MAC address รวมกับค่า timestamp ซึ่งเป็นตัวเลขในหน่วยนาโนวินาที (nanosecond) จำนวน 100 หลักเพื่อให้ได้ตัวเลขที่มีเอกลักษณ์ ส่วนใหญ่ถูกใช้ในการระบุ transaction

Version 3 และ 5 เป็นการใช้ UUID ในรูปแบบของการทำ hash function เช่น MD5 และ SHA-1

Version 4 ใช้เป็นเลขสุ่ม

แล้วมันเกี่ยวอะไรกับ Bluetooth Protocol
กลุ่ม Bluetooth ได้ให้มาตรฐานในการติดต่อบนเครือข่าย Bluetooth โดยใช้ UUID ในกระบวนการทำ Service Discovery Protocol (SDP) และการเชื่อมต่อ  โดยจองตัวเลขขนาด 32 bit แรกเอาไว้ แต่ที่ใช้ตอนนี้ใช้แค่เพียง 16 bit หลังสำหรับระบุโปรโตคอลก่อน  ซึ่งตัวเลขเหล่านี้ใช้ในการระบุมาตรฐานในการเชื่อมต่อ เช่น Protocol Identifiers,  profile ใน BluetoothProfileDescriptorList  เป็นต้น และต่อด้วยเลข UUID ฐานดังตารางที่ 1

ตารางที่ 1
UUID NameUUID
BASE_UUID0000XXXX-0000-1000-8000-00805F9B34FB

จากนั้นแทนค่า XXXX ด้วยค่า 16 bit ( 4 hexadecimal charactor) ดังยกตัวอย่างบางส่วนมาในตารางที่ 2

ตารางที่ 2
Service Class NameUUIDSpecificationAllowed Usage
ServiceDiscoveryServerServiceClassID0x1000Bluetooth Core SpecificationService Class
BrowseGroupDescriptorServiceClassID0x1001Bluetooth Core SpecificationService Class
SerialPort0x1101Serial Port Profile (SPP)
NOTE: The example SDP record in SPP v1.0 does not include a BluetoothProfileDescriptorList attribute, but some implementations may also use this UUID for the Profile Identifier.
Service Class/ Profile
LANAccessUsingPPP0x1102LAN Access Profile
[DEPRECATED]
NOTE: Used as both Service Class Identifier and Profile Identifier.
Service Class/ Profile
.............

link : https://www.bluetooth.org/en-us/specification/assigned-numbers/service-discoveryhttp://www.avetana-gmbh.de/avetana-gmbh/produkte/doc/javax/bluetooth/UUID.htmlhttp://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#createRfcommSocketToServiceRecord%28java.util.UUID%29

Saturday, August 24, 2013

รูปแบบการเขียนโค้ด (code)


แม้ว่าแนวทางการเขียนโค้ดจะไม่มีการกำหนดตายตัว  แต่ก็ได้มีแนวทางการตั้งชื่อตัวแปร คลาส หรือ เมธทอด ต่างๆ ที่สร้างโดยมีที่มาจากตัวอย่างปัญหาของการเขียนโค้ดที่ทำให้อ่านเข้าใจยาก ตำแหน่งผิดเพี้ยน โดยวันนี้จะมาเล่าหลักการ 3 หลัก คือ การตั้งชื่อตัวแปร การใช้วรรค/แท็บ และการใช้วงเล็บ

  1. การตั้งชื่อตัวแปร
เนื่องด้วยกฏของการตั้งชื่อสิ่งต่างๆ ในโลกของการโปรแกรมไม่อนุญาตให้มีการเว้นวรรคระหว่างตัวอักษรทำให้ชื่อตัวแปรต้องเป็นกลุ่มตัวอักษรที่ติดกัน เช่น
int extrapayment;
int except_weightunit;
int multiple-string-number;

จากตัวอย่างในบรรทัดแรกจะเห็นได้ว่าหากเรานำคำต่างๆ มาเขียนติดกันเป็นชื่อตัวแปรทำให้เราอ่านแบ่งคำเพื่อเข้าใจชื่อของตัวแปรได้ยากขึ้นเพราะไม่มีสัญลักษณ์อะไรมาคั่นระหว่างคำ  ในบรรทัดที่ 2 และ 3 มีการใช้ '-' และ '_' มาช่วยในการแบ่งระหว่างคำ  สัญลักษณ์เหล่านี้สามารถนำมาใช้ช่วยให้อ่านได้ขึ้นได้แต่มีข้อเสียอยู่ที่สัญลักษณ์พิเศษเหล่านี้มักจะมีความยากในการพิมพ์เพิ่มขึ้น  ทำให้มีแนวคิดในการตั้งชื่อตัวแปรที่นิยมใช้กันเรียกว่า CamelCase (Wiki)
ผู้เขียนเข้าใจว่ามีที่มาจากลักษณะของอูฐที่มีขอที่ชูสูงโดยมีคอที่ยาวลงมายังลำและโหนกที่มีลักษณะสูงต่ำสลับกันไป  แนวคิดนี้ใช้วิธีในการแบ่งคำโดยให้ตัวอักษรแรกของคำหนึ่งคำจะต้องเป็นตัวพิมพ์ใหญ่และใช้ตัวอักษรที่เหลือของคำเป็นพิมพ์เล็กทั้งหมดทำให้เราได้ชื่อตัวแปรที่อ่านง่ายขึ้น ดังตัวอย่าง
int extraPayment;
int exceptWeightUnit;
int multipleStringNumber;
ซึ่งในภาษา Java ได้ให้แนวทางการใช้ CamelCase ไว้คือ
  • ชื่อตัวแปรและเมธทอดให้ใช้ lowerCamelCase เช่น variableName
  • ชื่อคลาสให้ใช้ UpperCamelCase เช่น ThisIsClassA
  • [ยกเว้น]ชื่อของค่าคงที่ให้ใช้ตัวพิมพ์ใหญ่ทั้งหมดและใช้ '_' เพื่อเว้นวรรคระหว่างคำ CONSTANT_VALUE

  1. การใช้วรรค/แท็บ
การเขียนโค้ดให้อ่านง่าย จุดหนึ่งที่ใช้ก็คือการวรรคและการแท็บ  รูปแบบของโค้ดโดยสากลนั้นใช้การวรรคอย่างน้อยหนึ่ง "เคาะ" เพื่อแบ่งรูปแบบของโค้ดต่างๆ เช่น ประเภทเมธทอด[วรรค]ชนิดของการคืนค่า[วรรค]ชื่อเมธทอด เป็นต้น หรืออนุญาตให้ไม่ต้องใช้วรรคระหว่าง ตัวกำหนดค่า เช่น 5+1 number<=3 เป็นต้น ซึ่งรูปแบบของโค้ดสามารถให้เราใช้วรรคมากกว่าหนึ่ง "เคาะ" ได้  พิจารณาตัวอย่างโค้ด
$search = array('a', 'b', 'c', 'd', 'e');
$replacement = array('foo', 'bar', 'baz', 'quux');
$value = 0;
$anothervalue = 1;
$yetanothervalue = 2;
$search      = array('a',   'b',   'c',   'd',   'e');
$replacement = array('foo', 'bar', 'baz', 'quux');
$value           = 0;
$anothervalue    = 1;
$yetanothervalue = 2;

เห็นได้ว่าตัวอย่างที่ 1 มีการใช้วรรคเพียงหนึ่ง "เคาะ" เพียงอย่างเดียวแต่ตัวอย่างที่ 2 มีการใช้วรรคและแท็บหลายครั้งเพื่อทำให้ผู้อ่านโค้ดสามารถอ่านและเปรียบเทียบจำนวนของตัวแปรได้ง่ายมากขึ้น  แต่ก็มีข้อเสียเกิดขึ้นเมื่อมีการเปลี่ยนค่าหรือชื่อตัวแปรเป็นชื่อที่มีตัวอักษรมากกว่าหรือน้อยกว่าทำให้การเว้นวรรค/แท็บที่วางไว้ผิดตำแหน่งไป  หรือผู้แก้ไขมีการตั้งค่าโปรแกรมที่ใช้เขียนโค้ดโดยมีจำนวน "เคาะ" ในการแท็บไม่เท่ากันก็อาจทำให้รูปแบบโค้ดดูผิดเพี้ยนได้
$search      = array('a',   'bbb',   'cc',   'd',   'e');
$r = array('foo', 'bar', 'baz', 'quux');
$value           = 0;
$a    = 1;
$yetanothervalue = 2;

  1. การใช้วงเล็บ
เมื่อสมัยที่เราเรียนเขียนโค้ดถึงบทที่มีการใช้ if else  เรามักจะเจอตัวอย่างโค้ดที่ดูเข้าใจง่ายแบบนี้
if (you.hasAnswer())
{
    you.postAnswer();
}
else
{
    you.doSomething();
}
แต่เมื่อเรามีการใช้งานโปรแกรมเขียนโค้ดที่มีความสามารถสูงๆ ซึ่งมักจะมีระบบจัดวงเล็บให้อัตโนมัติเราก็จะได้ตัวอย่างโค้ด คือ
if (you.hasAnswer()) {
    you.postAnswer();
} else {
    you.doSomething();
}
ตัวอย่างที่ 1 จะมีข้อเสียเมื่อมีการใช้เงื่อนไขหรือการเรียกฟังก์ชันที่ซ้อนกันมากๆ ทำให้การขึ้นบรรทัดใหม่ของวงเล็บกินเนื้อที่บนหน้าจอทำให้เห็นโค้ดได้น้อยลงและจำนวนบรรทัดที่มากขึ้นนี้ทำให้การพิมพ์โค้ดลงในกระดาษจะต้องใช้กระดาษเพิ่มขึ้นหลายหน้า (หลายๆคนคงเคยชินกับข้อเสียนี้ดี) ในตัวอย่างที่ 2 อาจจะทำให้บางคนอ่านเส้นทางของเงื่อนไขยากขึ้นหรือไม่แน่ใจว่าในโค้ดนี้มีการปิดวงเล็บแล้วรึยังซึ่งโปรแกรมเขียนโค้ดในปัจจุบันมีตัวช่วยมากมายที่จะช่วยแสดงขอบเขตของวงเล็บหรือตรวจสอบและแก้ไขวงเล็บที่ขาดหายไปได้อีกด้วย
การใช้วงเล็บนี้ไม่มีจุดกำหนดที่ตายตัวนอกจากความชอบในการใช้งาน  ส่วนตัวผู้เขียนชอบที่จะผสมทั้งสองวิธีโดยขึ้นบรรทัดใหม่หรือเว้นบรรทัดวงเล็บให้กับเมธทอด คลาสหรือเงื่อนไขสำคัญๆ เพื่อให้อ่านง่ายขึ้นดังตัวอย่าง
public void onSensorChanged(SensorEvent event){
   
 if (samplingFilter(sampling, timeStamp)) {
   
  if(now != 0){
   temp++;
   if(temp == nbElement){
    time = timeStamp - now;
    freQ.setText("Current Frequency = " + nbElement * 1000000000 / time + "Hz");
    temp = 0;
   }
  }
  if(temp == 0){
   now = timeStamp;
   temp++;
  }
 }   
}