Sunday, June 19, 2005

เทคนิค: Reference and Cross Reference and Tables of Content in Microsoft Word

  1. ทำการสร้างสารบัญ
    จำทำสารบัญสำเร็จได้เวลาพิมพ์เราก็ต้องแบ่งประเภทฟ้อนต์ออกเป็น Heading 1 และ Heading 2 ไม่งั้นจะเป็นเรื่องยุ่งขึ้นมาได้ทันที การใช้ heading 2 จะทำให้มันกลายเป็นหัวข้อรองไปในทันที

    เมื่อมีการเรียกใช้หัวข้อของพวกนี้เสร็จแล้ว ก็หาที่เหมาะๆแล้วใส่สารบัญเข้าไปได้เลย ด้วยการไปที่
    insert -> reference -> Index and Tables จากนั้นก็ไปที่แท็บ Table of Contents แล้วเลือกรูปแบบตามที่เราอยากให้มันเป็น

  2. การทำหมายเลขบท (chapter)
    การทำหมายเลขบทเป็นสิ่งที่สำคัญมาก เพราะไม่อย่างนั้นเราจะพบว่าเวลาที่เราใส่ caption ให้กับรูปหรือตารางมันจะไม่แสดงแสดงเลขบทที่ถูกต้องออกมา เพราะมันไม่รู้ว่าขณะนี้อยู่ในบทที่เท่าไหร่ อย่างไรก็ตามการทำสารบัญไม่จำเป็นต้องใส่หมายเลขบทก็ได้ เพราะว่าสารบัญจะตรวจดูเฉพาะลักษณะของตัวอักษรเท่านั้น

    ขั้นตอนการทำหมายเลขบทก็คือการใส่หมายเลขเข้าไปแบบธรรมดา ขอให้รู้เพิ่มเติมด้วยว่าหากเราต้องการที่จะเปลี่ยนรูปแบบการแสดงหมายเลขบท เป็นต้นว่าแทนที่จะแสดงตัวเลขเฉยๆ แต่ต้องการแสดงเป็น Chapter 1. แทน ในลักษณะเช่นนั้นเราก็ต้องทำการ customize รูปแบบเองซึ่งทำได้ไม่ยาก

    หมายเหตุ การนับเลขบทยังสามารถที่จะนับต่อจากที่นับไว้ก่อนหน้าได้ ทำให้เราสามารถแก้ไขมันได้ ภายหลังจากที่ได้พิมพ์แบบตรงๆดื้อๆไปเยอะ

  3. การทำให้หัวชื่อของรูปหรือตาราง (Caption) สามารถไปปรากฏที่สารบัญภาพและตาราง
    เรื่องนี้ทำได้ง่ายๆตรงไปตรงมา นั่นก็คือ เราจะต้องทำการใส่ชื่อ (Caption) ให้กับรูปหรือตารางเข้าไป โดยการที่คลิกไปที่รูปก่อน จากนั้นก็ไปที่ insert->reference->caption

    เมื่อใส่ชื่อเข้าไปแล้วก็เลือกที่เหมาะๆแล้วก็ inert->reference-> Index and Tables จากนั้นก็ไปที่ Table of Figures แล้วเลือกรูปแบบสารบัญภาพ / ตารางตามความต้องการ

  4. การทำการอ้างอิงไปตรง Reference/Bibliography
    มันต้องเริ่มจากการที่เราใส่หมายเลขของหนังสือหรือบทความเข้าไปก่อนนะ โดยใส่เข้าไปตามปรกติเหมือนกับที่ทำหมายเลขบทนั่นแหละ

    เมื่อใส่หมายเลขเข้าไปแล้วเราก็พร้อมที่จะทำการอ้างอิง โดยไปที่ insert->reference->cross-reference แล้วเลือก "Numbered item"

  5. เรื่องไม่ค่อยดีเกี่ยวกับฟีทเจอร์สารบัญ
    เราพบว่าบางครั้งถ้ารูปเรามันบังเอิญไปเกี่ยวพันกับลักษณะอักษรที่เป็น Heading เมื่อไหร่ มันจะถูกเอาไปใส่ในสารบัญด้วย ทั้งๆที่มันเป็นรูป ในกรณีเช่นนี้ เราจะต้องทำการเปลี่ยนรูปแบบกลับไปเป็น Body text ให้ได้

    แต่ปัญหาก็คือไม่รู้จะเปลี่ยนยังไงดี เพราะคลิกไปที่รูปแล้วกดเปลี่ยนมันก็ยังไม่ได้อีก อาการเช่นนี้ให้เราทำการไฮไลต์มันทั้งบริเวณก่อนและหลังรูป แล้วจัดการแก้เป็น body text ก็จะทำให้ทุกอย่างเสร็จไปได้

  6. อีกปัญหากับ caption
    บางทีเราพบว่า caption ที่เรามีอยู่มันแสดงผลแปลกๆของมันพยายามแก็ก็ไม่สำเร็จ ลักษณะเช่นนี้ขอให้ทำใจไว้เลยว่า "ลบอันเดิมออกเถอะ แล้วใส่อันใหม่เข้าไปแทนที่จะดีกว่านะ" ใส่ใหม่เถอะ เร็วกว่า

Friday, June 17, 2005

บันเทิง: เพลงคนตีเหล็ก

นำมาจาก http://www.beautysheet.com/thai/mg591.html
เว็บเกี่ยวกับวงคาราวานสามารถเข้าไปได้ที http://www.caravanonzon.com

คนตีเหล็ก
คาราวาน

..ดนตรี..

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

Thursday, June 16, 2005

เบ็ดเตล็ด: ชอบข่าวนี้

พึ่งรู้ว่าทางมหาวิทยาลัยมีการมอบรางวัล "มนุษยชน" ให้กับคนที่บำเพ็ญกุศลให้กับมหาลัยด้วย

อ้างอิง: http://live.psu.edu/story/12430

"William and Josephine Weiss named Philanthropists of the Year
Thursday, June 16, 2005

Penn State has named William L. and Josephine B. Weiss recipients of the 2005 Philanthropists of the Year award in recognition of their longtime commitment to the University as volunteers and donors.

William Weiss, a 1951 Penn State graduate in industrial engineering, retired in 1994 as chairman and CEO of Ameritech Corp., a Midwestern communications company. Josephine Berry Weiss is a 1950 Penn State graduate in the liberal arts. She has held numerous leadership posts with civic and educational groups in the Chicago area, where the Weisses lived for many years.

The Philanthropist of the Year award originated in 2002 to recognize outstanding generosity and philanthropic leadership that benefits the Penn State community.

The Weisses have directed their philanthropy primarily to students and faculty in the Colleges of Engineering and the Liberal Arts, and to the University Libraries.

"Bill and Jo have supported some of Penn State's highest academic priorities," said Penn State President Graham B. Spanier. "Through scholarships, they have helped many undergraduates who have financial need, and have enabled the University to attract outstanding graduate students. Bill and Jo have been equally generous in sharing their time and talent as volunteers, and have inspired numerous other alumni to make the same kind of commitment. We are truly grateful for all that they have done for Penn State."

The Weisses are personally involved in their support for students. They established a series of Breakthrough Scholarships for undergraduates in the Colleges of Engineering and the Liberal Arts. These awards, covering 50 percent of tuition, are given to academically talented students who have financial need, show leadership potential and are the first generation in their family to attend college.

"Bill and I meet with our students in small groups at least annually and often correspond with them individually," said Josephine Weiss. "As we've learned about their career aspirations and personal goals, they have become part of our extended family."

The Weiss Graduate Scholarships support talented advanced-degree students in these same areas, and bring together selected doctoral candidates from the two colleges to exchange ideas that are beyond the boundaries of their individual disciplines and to learn from distinguished guest scholars. The two awards programs combined are expected to help more than 250 students over the period of the gift.

"Jo and I met while we were students at the University, and Penn State has played an important role in our lives ever since," noted William Weiss. "We'd like others to experience the same kinds of opportunities and benefits that we did."

In addition, the couple has endowed faculty fellowships in engineering and the liberal arts and the Josephine Berry Weiss chair in the humanities, and designated support for the University Libraries collections and equipment.

William Weiss also has served in a number of volunteer leadership capacities in support of Penn State's private fund-raising efforts. Most recently he was a vice chair of the Grand Destiny capital campaign that raised $1.37 billion in philanthropy between 1996 and 2003. He served as a trustee of the University from 1994 to 2003, and also was a member of the board of directors of Penn State Milton S. Hershey Medical Center.

A Big Run native, Weiss joined Bell Telephone upon graduating from Penn State. He was named chairman and CEO of Ameritech (now part of SBC Communications) in 1984, following a career with Bell companies in Pennsylvania, Wisconsin, Indiana and Illinois.

Josephine Weiss has been involved as a volunteer leader with such diverse organizations as the Chicago Child Care Society, the Women's Board of Northwestern University, and Chicago Museum of Science and Industry."

บันทึก: June 16, 2005

  1. กลัวว่าจะทำ control point ต้นฉบับหายก็เลยเอามาเซฟไว้ที่นี้ด้วย

    int
    PaModelBuilder::initPhase1H001( float* arControlPts ) {
    float* b = arControlPts;

    int nAdjust = -3;

    /*** TRUNK ***/
    b[ 4+nAdjust] = 137; b[ 5+nAdjust] = 122; b[ 6+nAdjust] = 109;
    b[ 7+nAdjust] = 138; b[ 8+nAdjust] = 117; b[ 9+nAdjust] = 112;
    b[10+nAdjust] = 140; b[11+nAdjust] = 107; b[12+nAdjust] = 121;
    b[13+nAdjust] = 142; b[14+nAdjust] = 89; b[15+nAdjust] = 132;

    /*** LEFT ***/
    b[16+nAdjust] = 169; b[17+nAdjust] = 200; b[18+nAdjust] = 105;
    b[19+nAdjust] = 146; b[20+nAdjust] = 187; b[21+nAdjust] = 89;
    b[22+nAdjust] = 137; b[23+nAdjust] = 168; b[24+nAdjust] = 84;
    b[25+nAdjust] = 136; b[26+nAdjust] = 160; b[27+nAdjust] = 85;
    b[28+nAdjust] = 134; b[29+nAdjust] = 148; b[30+nAdjust] = 93;
    b[31+nAdjust] = 133; b[32+nAdjust] = 136; b[33+nAdjust] = 103; //Bifurcation point

    /*** RIGHT ***/
    b[34+nAdjust] = 128; b[35+nAdjust] = 146; b[36+nAdjust] = 102;
    b[37+nAdjust] = 121; b[38+nAdjust] = 155; b[39+nAdjust] = 105;
    b[40+nAdjust] = 109; b[41+nAdjust] = 163; b[42+nAdjust] = 107;
    b[43+nAdjust] = 100; b[44+nAdjust] = 167; b[45+nAdjust] = 109;
    b[46+nAdjust] = 93; b[47+nAdjust] = 168; b[48+nAdjust] = 112;

    return 15; //The number of control points.
    }

    int
    PaModelBuilder::initPhase1H002( float* arControlPts ) {
    float* b = arControlPts;

    int nAdjust = -3;

    /*** TRUNK ***/
    b[ 4+nAdjust] = 148; b[ 5+nAdjust] = 135; b[ 6+nAdjust] = 146;
    b[ 7+nAdjust] = 150; b[ 8+nAdjust] = 127; b[ 9+nAdjust] = 150;
    b[10+nAdjust] = 151; b[11+nAdjust] = 120; b[12+nAdjust] = 155;
    b[13+nAdjust] = 155; b[14+nAdjust] = 101; b[15+nAdjust] = 170;

    /*** LEFT ***/
    b[16+nAdjust] = 171; b[17+nAdjust] = 201; b[18+nAdjust] = 139;
    b[19+nAdjust] = 167; b[20+nAdjust] = 200; b[21+nAdjust] = 131;
    b[22+nAdjust] = 159; b[23+nAdjust] = 182; b[24+nAdjust] = 135;
    b[25+nAdjust] = 148; b[26+nAdjust] = 162; b[27+nAdjust] = 135;
    b[28+nAdjust] = 147; b[29+nAdjust] = 154; b[30+nAdjust] = 138;
    b[31+nAdjust] = 146; b[32+nAdjust] = 145; b[33+nAdjust] = 141; //Bifurcation point

    /*** RIGHT ***/
    b[34+nAdjust] = 126; b[35+nAdjust] = 145; b[36+nAdjust] = 149;
    b[37+nAdjust] = 129; b[38+nAdjust] = 155; b[39+nAdjust] = 150;
    b[40+nAdjust] = 122; b[41+nAdjust] = 162; b[42+nAdjust] = 154;
    b[43+nAdjust] = 118; b[44+nAdjust] = 165; b[45+nAdjust] = 157;
    b[46+nAdjust] = 104; b[47+nAdjust] = 172; b[48+nAdjust] = 158;

    return 15; //The number of control points.
    }

    int
    PaModelBuilder::initPhase2H048( float* arControlPts ) {
    float* b = arControlPts;

    int nAdjust = -3;

    /*** TRUNK ***/
    b[ 4+nAdjust] = 162; b[ 5+nAdjust] = 134; b[ 6+nAdjust] = 100;
    b[ 7+nAdjust] = 168; b[ 8+nAdjust] = 116; b[ 9+nAdjust] = 113;
    b[10+nAdjust] = 176; b[11+nAdjust] = 96; b[12+nAdjust] = 136;
    b[13+nAdjust] = 182; b[14+nAdjust] = 92; b[15+nAdjust] = 160;

    /*** LEFT ***/
    b[16+nAdjust] = 200; b[17+nAdjust] = 232; b[18+nAdjust] = 100;
    b[19+nAdjust] = 180; b[20+nAdjust] = 211; b[21+nAdjust] = 86;
    b[22+nAdjust] = 162; b[23+nAdjust] = 183; b[24+nAdjust] = 88;
    b[25+nAdjust] = 159; b[26+nAdjust] = 168; b[27+nAdjust] = 88;
    b[28+nAdjust] = 157; b[29+nAdjust] = 158; b[30+nAdjust] = 93;
    b[31+nAdjust] = 157; b[32+nAdjust] = 149; b[33+nAdjust] = 97; //Bifurcation point

    /*** RIGHT ***/
    b[34+nAdjust] = 141; b[35+nAdjust] = 154; b[36+nAdjust] = 103;
    b[37+nAdjust] = 128; b[38+nAdjust] = 160; b[39+nAdjust] = 109;
    b[40+nAdjust] = 122; b[41+nAdjust] = 167; b[42+nAdjust] = 113;
    b[43+nAdjust] = 114; b[44+nAdjust] = 168; b[45+nAdjust] = 118;
    b[46+nAdjust] = 103; b[47+nAdjust] = 168; b[48+nAdjust] = 124;

    return 15; //The number of control points.
    }

  2. Method to improve the result for all cases:
    Because of the number of control points is too small to address some complex curves of blood vessels, we can make additional recovery. The recovery process can be done in two folds: 1. Perpendicular to the axis (maybe more suitable for pulmonary artery)
    2. Independently from the axis by starting from 3 crucial points (for aorta)

  3. Things needed to be investigated:
    • Change the propotion of weight in optimization process (ลองแล้ว ก็ไม่ค่อยเปลี่ยน)
    • Independent search for each part of pulmonary artery (ไม่ค่อย make sense แ่ต่ก็จะลอง)
    • Make an explicit backup of best control points in global optimization process (ลองแล้วเหมือนเดิม)
    • Increase the number of control points to check if there is any improvement
    • Make an x-y scaling of coordinates before start model matching (ลองแล้วไม่ค่อยได้ผล)
    • I now know the reason of failure. The angle of the three parts of pulmonary artery is different from person to person. Although we try to add more models, it is very likely that the problem still persists. However, locating bifurcation point of Pa is reliable enough to do additional recovery.

Tuesday, June 14, 2005

ธรรมะ: คำศัพท์ที่น่าสนใจในพุทธศาสนา

อ้างอิงจาก http://www.dhammalife.com/dhamma/vocab/
  1. สมถะ ธรรมเป็นเครื่องสงบระงับจิต, ธรรมยังจิตให้สงบระงับจากนิวรณูปกิเลส, การฝึกจิตให้สงบเป็นสมาธิ (ข้อ ๑ ในกรรมฐาน ๒ หรือภาวนา ๒)

  2. สมถกัมมัฏฐาน กรรมฐานคือสมถะ, งานฝึกจิตให้สงบ ดู สมถะ

  3. สมณะ ผู้สงบ หมายถึงนักบวชทั่วไปแต่ในพระพุทธศาสนา ท่านให้ความหมายจำเพาะ หมายถึงผู้ระงับบาป ได้แก่ พระอริยบุคคล และผู้ปฏิบัติธรรมเพื่อระงับบาป ได้แก่ผู้ปฏิบัติธรรมเพื่อเป็นพระอริยบุคคล

  4. กัมมัฏฐาน ที่ตั้งแห่งการงาน, อารมณ์เป็นที่ตั้งแห่งการงานของใจ, อุบายทางใจ, วิธีฝึกอบรมจิต มี ๒ ประเภท คือ สมถกัมมัฏฐาน อุบายสงบใจ ๑ วิปัสสนากัมมัฏฐาน อุบายเรืองปัญญา ๑ (นิยมเขียน กรรมฐาน) ดู ภาวนา - subjects of meditation; meditation exercises; the act of meditation or contemplation; ground for mental culture.

    กัมมัฏฐาน ๔๐ คือกสิณ ๑๐ อสุภะ ๑๐ อนุสสติ ๑๐ พรหมวิหาร ๔ อาหาเรปฏิกูลสัญญา ๑ จตุธาตุววัตถาน ๑ อรูป ๔

  5. อนุสติ ความระลึกถึง, อารมณ์ที่ควรระลึกถึงเนืองๆ มี ๑๐ อย่าง คือ ๑) พุทธานุสติ ระลึกถึงคุณของพระพุทธเจ้า ๒) ธัมมานุสติ ระลึกถึงคุณของพระธรรม ๓) สังฆานุสสติ ระลึกถึงคุณของพระสงฆ์ ๔) สีลานุสติ ระลึกถึงศีลที่ตนรักษา ๕) จาคานุสติ ระลึกถึงทานที่ตนบริจาคแล้ว ๖) เทวตานุสติ ระลึกถึงคุณที่ทำคนให้เป็นเทวดา ๗) มรณัสสติ ระลึกถึงความตายที่จะต้องมีเป็นธรรม ๘) กายคตาสติ ระลึกทั่วไปในกายให้เห็นว่าไม่งาม ๙) อานาปานสติ ตั้งสติกำหนดลมหายใจเข้าออก ๑๐) อุปสมานุสติ ระลึกถึงธรรมเป็นที่สงบระงับกิเลสและความทุกข์ คือ นิพพาน

  6. อนุสัย กิเลสที่แฝงตัวนอนเนื่องอยู่ในสันดาน มี ๗ คือ ๑) กามราคะ ความกำหนัดในกาม ๒) ปฏิฆะ ความหงุดหงิด ๓) ทิฏฐิ ความเห็นผิด ๔) วิจิกิจฉา ความลังเลสัยสัย ๕) มานะ ความถือตัว ๖) ภวราคะ ความกำหนดในภพ ๗) อวิชชา ความไม่รู้จริง

  7. สติปัฏฐาน ธรรมเป็นที่ตั้งแห่งสติ, ข้อปฏิบัติมีสติเป็นประธาน, การตั้งสติกำหนดพิจารณาสิ่งทั้งหลายให้รู้เห็นเท่าทันตามความเป็นจริง, การมีสติกำกับดูสิ่งต่าง ๆ และความเป็นไปทั้งหลาย โดยรู้เท่าทันตามสภาวะของมัน ไม่ถูกครอบงำด้วยความยินดียินร้าย ที่ทำให้มองเห็นเพี้ยนไปตามอำนาจกิเลส มี ๔ อย่างคือ ๑.กายานุปัสสนา สติปัฏฐาน การตั้งสติกำหนดพิจารณากาย, การมีสติกำกับดูรู้เท่าทันกายและเรื่องทางกาย ๒.เวทนานุปัสสนา สติปัฏฐาน การตั้งสติกำหนดพิจารณาเวทนา, การมีสติกำกับดูรู้เท่าทันเวทนา, ๓.จิตตานุปัสสนา สติปัฏฐาน การตั้งสติกำหนดพิจารณาจิต, การมีสติกำกับดูรู้เท่าทันจิตหรือสภาพและอาการของจิต ๔.ธัมมานุปัสสนา สติปัฏฐาน การตั้งสติกำหนดพิจารณาธรรม, การมีสติกำกับดูรู้เท่าทันธรรม; เรียกสั้น ๆ ว่า กาย เวทนา จิต ธรรม

ลิงค์: หนังสือทฤษฎีกราฟ

ไปเจอมาที่บล็อกของคุณ bact http://bact.blogspot.com/2005/06/introductory-graph-theory-books.html

"ไปถาม ๆ ไว้ในหน้าพูดคุยของหัวข้อทฤษฎีกราฟ ที่วิกิพีเดียภาษาไทย ว่าอยากได้หนังสือที่แนะนำเกี่ยวกับทฤษฎีกราฟหน่อย เอาแบบตัวอย่างเยอะ ๆ อยากจะรื้อฟื้นเรื่องนี้ หลังจากทิ้งไปนานพอสมควร เพราะดูท่าจะได้ใช้เยอะขึ้นในอนาคต

ไม่ทันไร คุณไร้สติ ก็แนะนำหนังสือมาเป็นชุด:

ทั้งหมดดาวน์โหลดมาอ่านได้ – โซ คู่น

million thanks ;)"

Sunday, June 12, 2005

บันทึก: June 11, 2005

  1. จะวัด relative time จากจุดที่สนใจ
    เราสามารถใช้ GetTickCount() ได้ โดยที่ฟังก์ชันนี้ปรกติจะคืน เวลาในหน่วย millisecond นับตั้งแต่เปิดเครื่องขึ้นมาให้เรา

  2. การใช้ class-member static variable ใน C++
    วิธีใช้ค่อนข้างจะจุกจิกเล็กน้อยสำหรับ C++ นอกจากเราจะต้องทำการประการไว้ที่ header ของคลาสแล้ว เราจะต้องทำการ initialize มันในระดับ global ด้วย (โดยปรกติกจะ init ไว้หน้า main function)
    ตัวอย่าง
    class ExperimentLog
    {
    public:
    static fstream* fileLog;

    static void initFileLog( CString strDirName, CString strFileName );
    static void writeCoordinate( int x, int y, int z );
    static void writeAffineParams( float arAffineParam[] );
    static void writePts( float arPts[], int nNumPts );
    static void writeCurvePtsWithDistance( float arPts[], int nNumPts );


    ExperimentLog(void);
    ~ExperimentLog(void);

    private:
    static char bufX[8];
    static char bufY[8];
    static char bufZ[8];

    public:
    static void test(void);
    };

    //Initialize static members
    fstream* ExperimentLog::fileLog = NULL;
    char ExperimentLog::bufX[8];
    char ExperimentLog::bufY[8];
    char ExperimentLog::bufZ[8];

    void main() { ... }

  3. การแปลงเลขทศนิยมให้เป็น string
    มีฟังก์ชันที่ทำหน้าที่นี้ได้อยู่สามตัวคือ _fcvt, _ecvt และ _gcvt แต่ก็ไม่มีอันไหนใช้ง่ายซะทีเดียว ที่ลองใช้มาพบว่าแบบ scienctific น่ะดีที่สุดแล้ว (คือใช้ _gcvt นั่นเอง)
    ตัวอย่าง
    const int nPrecision = 9;

    char* bufAffine = new char[20];
    //int nDecimalLocation, nSign;
    int nDotPosition;

    CString strInitial = "Z Axis (radian): ";
    _gcvt( arAffineParam[1], nPrecision, bufAffine );
    *fileLog << strinitial = "X Axis (radian): ">

ธรรมะ: ภาพของพุทธสาวกสองคนแรกในพุทธศาสนา

ภาพพุทธประวัติ
ฝีมือครูเหม เวชกร จิตกรมือหนึ่งของไทย





สองพาณิชถวายข้าวสัตตุผงก้อนสัตตุผง แล้วทูลปฎิญาณตนเป็นอุบาสกคู่แรก ในโลก [๓๑]

ภาพนี้เอามาจาก http://www.dhammalife.com/
ภาพพร้อมคำบรรยายแบบละเอียดดูได้ที่ http://www.dhammalife.com/buddha/pixbio/ (อ้างอิงเลขที่ 31 )

นี่ มีการแจกซีดีธรรมะฟรีด้วยนะ สามารถติดต่อได้ที่ http://www.cdthamma.com/

มีซีดีที่อยากได้ดังนี้
1. CD001 ซีดีพระไตรปิฏก รวม 3 ชุด
http://www.cdthamma.com/titles/cd001_050/cd001.htm
2. CD015 ซีดีธรรมปรารภเพื่อสติปัฏฐาน หลวงพ่อคำเขียน สุวัณโณ
http://www.cdthamma.com/titles/cd001_050/cd015.htm
3.
CD006 พระธรรมเทศนา โดย พระพรหมคุณาภรณ์ (ป.อ.ปยุตฺโต)
http://www.cdthamma.com/titles/cd001_050/cd006.htm
4.
พระธรรมเทศนา โดย พระราชพรหมยาน( หลวงพ่อฤาษีลิงดำ ) วัดท่าซุง อ.เมือง จ.อุทัยธานี
http://www.cdthamma.com/titles/cd001_050/cd024.htm

ธรรมะ: นิยามของคำว่าอบายมุข

วันนี้สนใจคำว่าอบายมุขขึ้นมา จึงลองเปิดพจนานุกรรมพระไตรปิฎกดู
(อ้างอิง: http://www.dhammalife.com/dhamma/vocab/)

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

มี ๔ อย่าง
คือ ๑) เป็นนักเลงหญิง ๒) เป็นนักเลงสุรา ๓) เป็นนักเลงการพนัน ๔) คบคนชั่วเป็นมิตร;

อีกหมวดหนึ่งมี ๖ อย่าง คือ ๑) ติดสุราและของมึนเมา ๒) ชอบเที่ยวกลางคืน ๓) ชอบเที่ยวดูการเล่น ๔) เล่นการพนัน ๕) คบคนชั่วเป็นมิตร ๖) เกียจคร้านการงาน
สิ่งที่อยากให้สังเกตก็คือความเกียจคร้านการงานก็คือทางสู่ความเสื่อมเช่นกัน

เบ็ดเตล็ด: วันเกิดของคนในครอบครัว

วันเกิดอาปา: 27 พฤษภาคม
วันเกิดอาแหม่ะ: 23 ตุลาคม
วันเกิดคุณเตี๊ยง: (ไม่รู้แฮะ ลืมถามมา)
วันเกิดคุณอ๋อย: 3 สิงหาคม
วันเกิดสมพล: 16 มกราคม
วันเกิดภิญโญ: 1 มิถุนายน

บันทึก: June 11, 2005

วันนี้ค้นพบแล้วว่าพารามิเตอร์ที่ต้องพิจารณาในการทำ Optimization ที่สำคัญมากอันหนึ่งก็คือ จำนวนจุดบน spline เราพบว่าการเปลี่ยนจำนวนจุดทำให้ผลลัพธ์ที่ได้ต่างไปจากเดิมมาก แต่มันจะได้ผลที่ดูสมเหตุสมผลก็ต่อเมื่อเราทำการกระจายจุดควบคุมออกไปเท่าๆกัน

อ่า อย่าลืมแก้ฟังก์ชัน Opmization ให้เรียบร้อยด้วยนะ เพื่อป้องกันการติดลูป
เราควรจับเวลาในการทำ optimization เทียบกับพารามิเตอร์ต่างๆ และผลลัพธ์ที่ได้ด้วย

วันนี้ลองทำเว็บแกลเลอรี่ดูพบว่าทำได้ง่ายมาก ขอบคุณตัวเองที่ทำบุ๊คมาร์คไว้หน้าเว็บที่บอกวิธีไว้ด้วยนะ คิดว่าโอกาสต่อไปจะเริ่มมาทำแกลเลอรีีให้ไทยคลับมั่งแล้ว

แถมนิดวันนี้ไปวิ่งมา พบว่าเราิวิ่งด้วยเวลาเกือบ 30 นาทีนะ (อีกแค่ประมาณ 30 วิก็จะ 30 นาทีพอดี) วิ่งช้ากว่าที่คิดนิดหน่อย แต่จากเวลาที่ใช้คิดว่าระยะทางน่าจะ 4.5 กิโลเมตรได้

Saturday, June 11, 2005

บันทึก: มิถุนายน 10, 2005

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

1. โมเดลที่ใช้ในการ optimization กับโมเดลที่เอาไว้ดูนั้นต่างกันมาก เพราะโมเดลที่เอาไว้ดูนั้น ต้องเน้นที่การกำหนดไปที่จุดที่มีค่า likelihood สูง แต่สำหรับโมเดลที่เอาไว้ใ้ช้ในการ optimization นั้น จะสำคัญที่การกระจายจุดด้วย ไม่เช่นนั้นเวลาที่ทำการ optimize มันก็จะพยายาม optimize จุดที่มีการกระจุกตัวเป็นหลัก

2. ค่าพารามิเตอร์สำหรับการ optimize ใน powell's method ค่อนข้างจะสำคัญมาก เพราะว่า ถ้ากำหนดค่าผิดมันจะไม่ยอมหลุดออกจากลูปนะ ซึ่งขอบันทึกไว้ในที่นี้ด้วยว่าโดยปรกติค่ามักจะเป็นตามที่แสดงข้างล่าง
  • ZEPS ถูกใช้ใน brent โดยปรกติจะมีค่าเท่ากัน 1e-10
  • TINY ถูกใช้ใน mnbrak โดยปรกติจะมีค่าเท่ากัน 1e-20
  • TOL เป็นค่าที่ linmin ส่งไปให้ brent โดยปรกติจะมีค่าเท่ากัน 2e-4
  • tolerance ที่ส่งไปใ้ห้กับ powell มักจะมีค่าเท่ากัน 1e-16
3. พารามิเตอร์สำหรับการทำ global optimization ของเรากับเค้าต่างกันมาก ของเราจะให้ความสำคัญกับระยะและสเกลค่อนข้างน้อย โดยที่สัดส่วนจะเป็น 0.01, 1.0, 1.0 ตามลำดับ นั่นคือ ความเต็มมีค่าเพิ่มขึ้น 10 เท่า ส่วนระยะมีค่าลดลง 10 เท่า

Friday, June 10, 2005

งาน: Always make a good start

ไม่ว่าจะทำงานอะไรขอให้เริ่มต้นให้ดี และ ทำให้เป็นระบบเสมอ
Key:
1. Study of data flow and its diagram
2. Class inheritance preparation

สำหรับครั้งนี้อยากจะเน้นเรื่องของการเขียนโปรแกรม และการจัดคลาสให้มีการรียูสโค้ดมากๆ

ถึงแม้จะอยู่ในช่วงทำ Prototype ก็ขอให้เริ่มมันดี ด้วยการจัดโครงสร้างที่พร้อมในการทำ inheritance พอสมควร เช่น ในงานของ Aorta and Pulmonary Artery Extraction พวกที่ทำหน้าที่เขียนผลลัพธ์, ในการ optimization, และ ในการเขียน spline น่าจะใช้ร่วมกันได้ ดังนี้เราจึงควรทำมันแยกออกมาเป็นโมดูลให้เรียกใช้กันได้ง่ายๆ ไม่ต้อง copy paste ให้วุ่นวายอย่างที่เป็นอยู่

การที่จะทำงานนี้ให้สำเร็จได้ เราจะต้องเริ่มด้วยการเขียน การไหลเวียนของข้อมูลก่อนเสมอ เพราะการไหลของข้อมูลจะทำให้รู้ได้ว่าเราต้องมี utility อะไรมั่งจึงจะสามารถทำงานได้สำเร็จ และเราก็จะรู้เองว่าอะไรที่ควรแยกออกมาทำเป็นคลาสได้โดยง่าย

ชีวิต: อย่ากลับไปใช้ชีวิตอย่างประมาทอีก

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

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

เราอยากจะเริ่มต้นชีวิตใหม่ตั้งแต่ตอนนี้เป็นต้นไป
เราจะกระทำความเพียรในการงานอย่างหนึ่ง
เ้ราจะทำสมาธิอย่างหนึ่ง
เราจะสำรวมกาย วาจา ใจอย่างหนึ่ง
เราจะปฏิเสธความยินดีในกามอีกอย่างหนึ่ง

เราจะเริ่มต้นชีวิตใหม่เดี๋ยวนี้ เราจะทำการทดลองทุกอย่างอย่างละเอียด จะให้เหลือข้อสงสัยแม้แต่น้อยนิดก็ไม่ได้

Monday, June 06, 2005

2005-June-6: Note

  1. Writing formatted number in Java
    When we want to specify the exact significant number in Java we should use %nG in formatting, where n is that exact significant number. However, Java i's quite awkward in formatting number; we need to specify number in object and put it in an array.

    Example:
    Double[] arDouble = new Double[1];
    arDouble[0] = new Double(12.345678);
    System.out.printf("I print %5G na.", arDouble );

  2. Writing text to a file in Java
    มันง่ายอย่างไม่น่าเชื่อในการที่เราจะเขียนข้อความลงไฟล์ในภาษาจาวา เราเพีียงเริ่มต้นด้วยการกำหนดปลายทางของข้อความที่เขียนไปที่ไฟล์ที่เราต้องการ ซึ่งสามารถทำได้ด้วยคลาส BufferedWriter และ FileWriter

    ตัวอย่าง:
    BufferedWriter out = new BufferedWriter(new FileWriter("M:/outfilename.txt"));
    out.write("1\t1.2\t5.34\t2.225");
    out.close();

Thursday, June 02, 2005

เทคนิค: เรื่องน่าสนเกี่ยวกับไวรัส

เอามาจาก zdnet รู้สึกว่าเครือข่ายการจรากรรมข้อมูลและไวรัสมันซับซ้อนกว่าที่คิดนะ มีการสร้าง network ขึ้นมาเพื่อทำการ spam และขโมยข้อมูลโดยเฉพาะเลย

http://news.zdnet.com/2100-1009_22-5729426.html?tag=nl.e589