วันพฤหัสบดีที่ 12 พฤษภาคม พ.ศ. 2554

Bug ของ Command Line : expr.... (หรือไม่ใช่ ???)

Introduction
    หลังจาก ราคาน้ำมันดิบ WTI  ร่วงจาก ร้อยกว่าเหรียญสหรัฐฯ มาอยู่ต่ำกว่า 100 เหรียญสหรัฐฯ  ผมก็พบ Bug ของ คำสั่ง expr บน Linux     มันเกี่ยวกัน ตรงไหน สงสัยไหม ???

    คำสั่ง expr เป็นคำสั่งที่ใช้ ตรวจสอบเงื่อนไขทาง คณิตศาสตร์ ว่าเป็นจริง หรือ เท็จ

                expr  เงื่อนไขทางคณิตศาสตร์

    โดย ถ้า ....
        เงื่อนไข เป็นจริง expr  จะส่งค่า 1 กลับมา

    แต่ถ้า

        เงื่อนไข เป็นเท็จ  expr  จะส่งค่า 0 กลับมา

    ควรทราบ ----> expr จะใส่ \ นำหน้า เครื่องหมาย> สำหรับการเปรียบเทียบ มากกว่า เพื่อ ให้  expr ไม่สับสน ระหว่าง "มากกว่า"  หรือ การเปลี่ยนทิศทาง ผลลัพธ์ คำสั่ง (Redirection)

    ตัวอย่าง

tonhom@Orion:~$
tonhom@Orion:~$ expr 1 \> 2
0
tonhom@Orion:~$
tonhom@Orion:~$

1 > 2 ไม่จริง ดังนั้น expr จะ Return ค่า 0 กลับมา

tonhom@Orion:~$
tonhom@Orion:~$ expr 1 \< 2
1
tonhom@Orion:~$
tonhom@Orion:~$

1 < 2 จริง ดังนั้น expr จะ Return ค่า 1 กลับมา

แล้วไงต่อ....

     ผมเขียน Bash Shell Script เพื่อสร้าง ตาราง แสดง ราคาย้อนหลัง ของ น้ำมันดิบ WTI    โดย จะใช้ ตัวอักษร สีแดง แสดง ราคา ถ้า ราคามันลดลง...

 การเปรียบเทียบ ตัวเลขทศนิยม ใน Bash Shell Script ไม่สามารถทำได้โดยตรง ต้อง อาศัยเจ้าคำสั่ง expr ช่วยเปรียบเทียบให้....

 Script ก็ดูเหมือนจะใช้งานได้ปกติ.... จนกระทั่งวันนั้น....  วันที่ น้ำมันดิบ WTI มันต่ำกว่า 100 เหรียญสหรัฐฯ



tonhom@Orion:~$
tonhom@Orion:~$ expr 100.1 \> 100.2
0
tonhom@Orion:~$
tonhom@Orion:~$

100.1 > 100.2 ไม่จริง  ผลลัพธ์ ของ expr ยังถูกต้อง.... 

tonhom@Orion:~$
tonhom@Orion:~$ expr 100.1 \> 99.8
0
tonhom@Orion:~$
tonhom@Orion:~$




อ้าว.... ไงเป็นงี้....  100.1 > 99.8 เป็นจริงนี้ ทำไม expr จึง Return 0 กลับมา....
หรือนี้เป็น Bug ของ expr...

เพราะ ชีวิต ยังต้องเดินต่อไป....
    หาวิธีแก้ไขปัญหาชั่วคราว.... (แฮะๆ ไอ้ที่ผ่านๆ มา แก้ไขชั่วคราว นี้ มักจะใช้งานชั่วโคตร....)

ทดลองเอา เลขศูนย์ ใส่เข้าไปด้านหน้า  99.8  เป็น 099.8

tonhom@Orion:~$
tonhom@Orion:~$ expr 100.1 \> 099.8
1
tonhom@Orion:~$
tonhom@Orion:~$

เออ ใช้งานได้วุ้ย....


งั้นก็เอาเลขศูนย์ แปะเข้าไปด้านหน้าเลขทุกตัวเลยแล้วกัน....

tonhom@Orion:~$
tonhom@Orion:~$ expr 0100.1 \> 099.8
0
tonhom@Orion:~$
tonhom@Orion:~$



อ้าว กรรม... ใช้งานไม่ได้ซะงั้น....




tonhom@Orion:~$
tonhom@Orion:~$ expr 1000.1 \> 099.8
1
tonhom@Orion:~$
tonhom@Orion:~$

เอางี้ แล้วกัน แก้ไขโดยทำเลขให้ จำนวนหลักเท่ากัน.... ถ้าไม่เท่า เอาเลข 0 ไปแปะ ด้านหน้าเพื่อให้ จำนวนหลัก เท่ากัน....

อาศัยเจ้า คำสั่ง awk....

tonhom@Orion:~$
tonhom@Orion:~$ echo 99.8 | awk '{printf "%05.1f", $1}' ; echo
099.8
tonhom@Orion:~$
tonhom@Orion:~$ 


tonhom@Orion:~$ 
tonhom@Orion:~$ echo 100.2 | awk '{printf "%05.1f", $1}' ; echo
100.2
tonhom@Orion:~$
tonhom@Orion:~$

เอา Concept นี้ไปใส่ใน Script .... ดูเหมือน ผลลัพธ์ ของ Script จะทำงานได้ตามปกติ


ทำงานได้แล้ว จบ....
    ผลลัพธ์ ของ Script จะทำงานได้ตามปกติ    แต่ ผมเริ่มเกิดความรู้สึกหงุดหงิด.... Source Code ที่เข้าใจง่ายๆ เริ่มจะไม่ดูเรียบง่าย ไม่สวยงามเหมือนเดิม....

พระเจ้า สร้าง Linux มา แล้วทำไมไม่ทำให้ bash มันเปรียบเทียบ ตัวเลข Floating Point ได้ง่ายๆ กว่านี้ ฟ่ะ....  (พระเจ้า ตอบกลับมา.... กูไม่ได้สร้าง.... พวกมึง (มนุษย์) สร้างกันขึ้นมาเอง.... กูไม่เกี่ยว....)

เปรียบเทียบแค่ เลขทศนิยม ต้องไป เรียกใช้ expr + awk ....   อะไรกันนี้....   หรือ ผมเข้าใจอะไรผิด ????
( เดียวย้ายโปรแกรมไปเขียนบน C ดีกว่า ---->  เขียนแค่นี้ if  (fTodayPrice > fTomorrowPrice)  {....}  จบเลย.... )

วันอาทิตย์ที่ 8 พฤษภาคม พ.ศ. 2554

ความรวย.... ความจน.... ความเลื่อนลอย....

ผมจนกว่า Bill Gates แต่ผมก็รวยกว่า  ขอทาน ที่นั่งอยู่ที่หน้าปากซอย
ทั้งๆ ที่ผมก็มี ตังค์เท่าเดิม....  เทียบกับ Bill Gates แล้ว ผมยากจน
ทั้งๆ ที่ผมก็มี ตังค์เท่าเดิม....  เทียบกับ ขอทาน ที่นั่งอยู่ที่หน้าปากซอย แล้ว ผมร่ำรวย
ความรวย ความจน มันเกิดจากการเปรียบเทียบ.....   

ชอบพูดกันว่า ความรวย ความจน มันอยู่ที่ ความรู้จักพอ....
แค่ไหน ที่เรียกว่า พอ....

งั้นเลิกทำงาน เดินไปขอข้าวตามร้านอาหารกิน.... ผมพอแล้ว ผมไม่โลภ....
นอนมันริมถนนนี้แหละ.... ผมพอแล้ว ผมไม่โลภ..... ผมไม่สะสม.....


พูดเรื่อง ความรวย ความจน มันจึงเลื่อนลอย....
พูดเรื่อง "อิสระภาพทางการเงิน"  ดีกว่า....

"อิสระภาพทางการเงิน" คือ การที่คุณ มีรายได้ จากการไม่ต้องทำงาน มากกว่า รายจ่าย  

เพราะคุณไม่สามารถทำงานไปได้ตลอดชีวิต.... 
ถ้า ใครวางแผนไว้ว่า พอเลิกทำงานปุ๊บ แล้วตายปั๊บ ก็ไม่ต้องคิดคำนึงเรื่อง "อิสระภาพทางการเงิน" ก็ได้

ใครมีลูก มีหลาน วางแผนให้ ลูกหลานเลี้ยงดู ยามแก่เฒ่า.... ไม่ต้องคิดคำนึงเรื่อง "อิสระภาพทางการเงิน" ก็ได้
ซึ่ง การวางแผนให้ ลูกหลานเลี้ยงดูยามแก่ จัดเป็น การลงทุนแบบหนึ่ง.... (ผมจัดของผมเอง :P )   การลงทุน มีความเสี่ยง ผลตอบแทนจากการลงทุน อาจไม่เป็นไปที่คุณคาดหวังไว้ก็ได้  ----> ลูกหลาน มันอาจจะไม่เลี้ยงคุณก็ได้ ( ลูกหลาน อาจจะอยากเลี้ยงคุณ แต่แค่มันเลี้ยงตัวเอง มันยังเอาตัวมันไม่รอดเลย)
 
ใครมีผักริมรั้ว มีไก่ออกไข่ เก็บกินได้ ----> รายจ่ายลดลง....  ใครไม่มี ค่าอาหาร มัน คือ รายจ่าย....
ใครมีบ้านของตัวเอง ----> รายจ่ายลดลง.... ใครไม่มี ค่าเช่าบ้าน มัน คือ รายจ่าย....
นั้น คือ รายจ่าย แต่ละคนไม่เท่ากัน....


เพราะ รายจ่ายแต่ละคนไม่เท่ากัน ไม่เหมือนกัน ....

บางคนอาจจะบรรลุ  "อิสระภาพทางการเงิน"  ได้ด้วย  รายได้เดือนละ 500 บาท....  หรือ บางคนอาจจะต้องทำให้เกิด รายได้เดือนละ 50,000 บาท จึงจะ บรรลุ  "อิสระภาพทางการเงิน"
 

เอวัง ก็มีด้วยประการฉะนี้แล


@^____^@

วันเสาร์ที่ 7 พฤษภาคม พ.ศ. 2554

กว่าจะขึ้นมา... เผลอแค่กระพริบตา ก็ลงไปแล้ว....











2011-05-06  ดู Volume แล้วจะรู้ว่า  ราคาลง ครั้งนี้  ใครยังไม่ได้ขาย "ความหนาว" มาเยือนแล้วแหละ....

นิทานเรื่องนี้ สอนให้รู้ว่า..... ตลาดหุ้น คือ สนามรบ มิใช่ ร้านสะดวกซื้อ แบบ 7-11

วันพุธที่ 4 พฤษภาคม พ.ศ. 2554

ล้างไฟ.... ด้วยไฟ....

2554-05-02 : ได้ดูข่าว "บินลาเดน ตายแล้ว...."

บารัค โอบามา ออก TV บอกว่า "บินลาเดน ตายแล้ว"   หาข่าวภาษาไทยมาอ่าน....  สรุปว่า หน่วย SEAL ของ สหรัฐฯ เป็นผู้สังหาร

เออ.... การตอบโต้ ความรุนแรง ด้วย ความรุนแรง มันไม่เห็นต้องใช้ ความเข้มแข็ง ความกล้าหาญ ความ.... ใดๆ มันก็แค่ระลึกนึกถึง ความเจ็บปวดที่เป็นฝ่ายถูกกระทำ แล้วก็หยิบอาวุธขึ้นมา.... ไปทิ่มพุง ไปยิงหัวฝ่ายตรงข้าม.... ก็แค่นั้น....

สิ่งที่น่าสนใจกว่านั้น คือ การที่ มนุษย์คนหนึ่งสามารถให้อภัย กับ การที่ตกเป็นฝ่ายถูกกระทำ ได้ นี้สิ น่าสนใจ....
มันต้องใช้ ความ..... (อะไรไม่รู้) ที่จะเอาชนะ ความรู้สึกโกรธ ความเกลียด.... ฯลฯ ที่เกิดขึ้นใน ความรู้สึกเรา....


ภูเขาเคลื่อนได้


ก่อนหน้านั้น วันสองวัน ได้ดูรายการในช่อง Money Channel พูดถึง หนังสือชื่อ "ภูเขาเคลื่อนได้"  บันทึกหญิงแกร่ง ของ คุณศรินทร เมธีวัชรานนท์

คุณศรินทร เมธีวัชรานนท์ นักบริหาร ในวงการนักการเงิน ที่ทุกคนรู้จัก และ ชื่นชมความสามารถ ที่ประสบความสำเร็จตั้งแต่อายุ 25 ปี แต่ชีวิตต้องพลิกผัน ต้องหนีออกนอกประเทศ จากความผิดที่ไม่ได้ก่อ
เพราะ โดนใส่ร้ายในคดีฉ้อโกงมูลค่า 196 ล้านบาท ทำให้ชีวิตหักเหจนเกือบปลิดชีวิตตัวเอง ตลอดระยะเวลา 14 ปีที่ต้องทนทุกข์ทรมานในต่างประเทศ และ อีก 4 ปีในประเทศไทย กับการตามหาพยาน และ หลักฐาน เพื่อยืนยันความบริสุทธิ์ ทั้งที่สังคมได้ตราหน้าเธอว่าเป็นบุคคลฉ้อโกง แต่เธอไม่ย้อท้อถึงแม้ว่าจะต้องสู้คดีเพียงลำพัง และเชื่อว่าความจริงจะเปิดเผย และสุดท้ายเธอก็ชนะคดี

(ไปนั่งหน้าห้อง ขอเข้าพบ CEO อยู่ 4 ปี กว่าจะได้พบ.... สุดท้ายที่ได้พบก็เพราะ บุกเข้าไปในห้องประชุม)

ผมไม่ได้สนใจใน ความอึดของเธอที่จะพยายามพิสูจน์ ความถูก ความผิด .... สิ่งที่น่าสนใจ คือ.... ผู้บริหารที่เหลือ มาขอร้อง ให้เธอไม่ฟ้องร้องเอาความ สิ่งที่เธอตัดสินใจทำก็ คือ ยอมยกโทษให้ ....

ล้างไฟ.... ด้วยไฟ.... ก็คงต้อง ตามล้างกันต่อไป....

ผู้ติดตาม

เกี่ยวกับฉัน

เพราะ ชีวิต คือ การลองผิด ลองถูก อย่างมี สติ + สัมปชัญญะ.... Trial & Error