Komsit's profileThis is KomsitR's spacePhotosBlogListsMore ![]() | Help |
This is KomsitR's spacespace(n.) - an empty area |
||||||||||||||||||||||||||||||||||||||||||||
|
|
December 05 VidView : Gold Award @ SIA 2007 วันที่ 3 ธันวาคม 2550 ที่ผ่านมา มีการประกาศผลรางวัลรายการ Samart Innovation Award 2007 ซึ่งผม แฮม และจั๊ม ได้ส่งผลงานเข้าแข่งด้วยในชื่อ VidView October 20 เล็กๆน้อยๆกับ Font ใน Javaในการทำงานเกี่ยวกับ GUI (Graphic User Interface) ของ Java คงหนีไม่พ้นเรื่องของการ Set Font เพื่อให้ได้รูปแบบและความสวยงามที่เราต้องการ
โดยทั่วไป การสั่ง Load Font เราจะสั่งดังนี้
Font tahoma = new Font("Tahoma", Font.BOLD, 12);
หรือ
Font tahoma;
tahoma = Font.getFont("TAHOMA-BOLD-12"); ตาม Code ข้างต้นเป็นการสั่ง Load Font ที่ต้องการตามชื่อ ทำให้อาจจะเกิดปัญหาตามมาเมื่อนำโปรแกรมไปทำงานในเครื่องคอมพิวเตอร์เครื่องอื่น ที่ไม่มี Font ชื่อนั้นๆ
ซึ่งถ้าหากเครื่องที่โปรแกรมทำงานไม่มี Font ดังกล่าวแล้ว จะทำให้ tahoma มีค่าเป็น null
ถึงอย่างไรก็ตาม Java ก็มี Method หนึ่งที่เข้ามาช่วยแก้ปัญหานี้ นั่นก็คือ
Font.getFont(String fontName, Font defaultFont)
โดยถ้าหากไม่พบชื่อ Font ที่ต้องการ จะ return ค่า defaultFont ออกมาแทน แต่กระนั้น ก็ทำให้เราไม่สามารถทราบผลลัพธ์ที่แน่นอนได้ วิธีแก้ปัญหาที่ผมคิดว่าดีที่สุดก็คือ นำเอาไฟล์ Font ที่ต้องการใช้ มาเก็บไว้ใน Jar ของโปรแกรมที่เราสร้างขึ้น แล้วสั่งโหลด Font จาก Jar ของตัวโปรแกรมเองเลย
วิธีนี้จะทำให้ปัญหาข้างต้นหมดไป และไม่ต้องคอยกังวลว่า GUI ที่เราออกแบบไว้จะแสดงผลออกมาไม่ได้ตามต้องการ
Method ที่ใช้ในวิธีนี้ก็คือ
createFont(int fontFormat, InputStream fontStream)
- fontFormat คือชนิดของ Font นั้น แต่ขณะนี้ Support เฉพาะ TrueType เท่านั้น
- fontStream คือข้อมูลของ File Font (วิธีเดียวกับการสั่งโหลดรูปจาก Jar ที่เคยเขียนไว้ใน Blog ที่ผ่านๆมา)
สำหรับตัวอย่าง Code มีดังนี้
1 Font tahoma = Font.createFont(Font.TRUETYPE_FONT,
2 MyClass.class.getResourceAsStream("TAHOMA.TTF"));
3 tahoma = tahoma.deriveFont(Font.BOLD, 12);
อธิบาย Code
ในบรรทัดที่ 1 และ 2 จะเป็นการสั่ง Load Font จาก Jar File โดยกำหนดชนิดของ Font เป็น TrueType
เมื่อสั่ง createFont แล้ว ลักษณของ Font (เช่น ตัวหนา) และขนาดของ Font จะถูกกำหนดโดยค่า Default ของ Java
โดยทั่วไปคือ ลักษณะจะเป็น Font.PLAIN และขนาดจะเท่ากับ 1
เราสามารถสั่งเปลี่ยนลักษณะและขนาดได้โดย Method deriveFont(int style, float size) ดังจะเห็นได้ในบรรทัดที่ 3
มาถึงตรงนี้เราก็สามารถนำตัวแปร Font (ในที่นี้คือ tahoma) ไปใช้งานต่อได้แล้ว
WINK! YOUR BUEATIFUL September 21 Quiz Logic#3-4Quiz ครั้งที่ 3
ออกแบบและสร้างวงจร Self Starting Counter
จำไม่ได้ว่า State ไหนจะเป็น Unused State
====== Update 7/6/2551 ======
สำหรับคนที่งงๆ Self Starting Counter ว่ามันคืออะไร?
ขอยกตัวอย่าง Counter ที่นับจาก 000 ถึง 101 ละกัน (ในที่นี้จะใช้เลขฐาน 2)
สามารถเขียน State Table ได้ดังนี้
Present State | Next State
000 | 001
001 | 010
010 | 011
011 | 100
100 | 101
101 | 000
110 | ???
111 | ???
จะเห็นได้ว่าเรามี State เหลืออยู่ 2 State ด้วยกัน (State สีแดง) เรียกว่า Unused State
ซึ่งถ้าวงจรของเราเกิดอาการติ๊งต๊องขึ้นมา แล้วดันเข้าไปอยู่ใน 2 State นี้ก็จะทำให้วงจรเกิดข้อผิดพลาดได้
การออกแบบวงจร Counter ที่เราจะรับรองได้ว่า ไม่ว่าวงจรจะเข้าไปอยู่ใน State ไหนก็ตาม สุดท้ายแล้ว มันก็จะสามารถกลับเข้าไปสู่ State ที่ถูกต้องได้
นั้นแหละที่เรียกว่า Self Starting Counter
แล้วจะสร้าง Self Starting Counter ได้ยังไงล่ะ?
คำตอบคือง่ายมาก "ก็ใส่ Next State ให้กับ Unused State สิ"
เมื่อดึง State Table ข้างบนมาแก้ไขให้เป็น Self Starting Counter จะได้ผลลัพธ์ดังนี้
Present State | Next State
000 | 001
001 | 010
010 | 011
011 | 100
100 | 101
101 | 000
110 | 000
111 | 000 เห็นมะ Self Starting Counter สร้างได้ง่ายนิดเดียวใช่มั้ยล่ะ
========================
Quiz ครั้งที่ 4
ออกแบบและสร้างวงจร Sequential Logic โดยที่เมื่อเจอ Input ที่ประกอบด้วยลำดับ 1010 หรือ 001 จะให้ Output ออกมาเป็น 1
โดยวงจรที่สร้างขึ้นต้องมีจำนวน State ที่น้อยที่สุดเท่าที่จะทำได้
เช่น มี Input เข้ามาในวงจรเป็นลำดับดังนี้ 101101111001 => เจอ 001 แล้วนิ่ ดังนั้น วงจรก็ส่ง Output เป็น 1 ออกมาในทันใด
========================
ทั้ง 2 Quiz อนุญาตให้ใช้ อุปกรณ์ Gate พื้นฐาน และ Flip-Flop (จำประเภทไม่ได้) Quiz Com Org: Sec อาจารย์อาทิตย์อันนี้วิกบอกมา
1. อธิบาย moore’s law 2. บอกกฏ 5 ข้อ ของการสร้าง bus 3. บอก registry ที่สำคัญมา 5 ตัว 4. SRAM กับ DRAM ต่างกันยังไง 5. เขียน block diagram ของ error correction 6. 1024 x 1024 k word of RAM of 4-bit word • ต้องใช้ 32 Mbit RAM กี่ตัวมาสร้าง • ใช้ input pin กี่อัน (จำตัวเลขไม่ได้ แต่โจทย์ประมาณนี้แหละ) 7. บอกความแตกต่างของ interrupt driven กับ DMA 8. เขียน micro operation ของ fetch ========================
1. เขียน Block Diagram ของ Error Correction
2. อธิบายความหมายและขั้นตอน Micro operation ของ Indirect Cycle
3. อธิบายความหมาย และข้อแตกต่างของ SRAM DRAM และ Embeded DRAM
4. ต้องการ RAM 1M words (8bit = 1 word) มี Ram chip 256K one bit per chip ต้องใช้ RamChip กี่ตัว Implement และถ้าการ Access Row และ Column ทำงานแยกครั้งกัน ตั้งมี Input Pin เท่าไร
5. อธิบายปัจจัยของการสร้าง Bus
6. อธิบาย Register ใน CPU ที่สำคัญมา 5 ชนิด
7. อธิบายบายความหมายของ DMA
September 16 Libray เจ๋งๆใน LogicWorkรวบรวมจาก Webboard ภาค
7449 - BCD to seven segment
74163 - counter 74175: Quad D Edge-Triggered Flip-Flop with Complementary Outputs and Asynchronous Clear 74181: 4-bit Arithmetic Logic Unit and Function Generator 74182: Lookahead Carry Generator 74183: Dual Carry-Save Full Adder 74184: BCD to Binary Converter 74185: Binary to BCD Converter 74_L85 - 4 bit comparator 74_169 - counter แบบ นับขึ้นนับ ลงได้ 74_373 74_374 74_377 - register จาก D flip flop ทั้งหลาย ลองดูที่ http://en.wikipedia.org/wiki/List_of_7400_series_integrated_circuits Thx: แฮม รุจ แวด September 15 MSDN Thailand Remix 2007Microsoft Thailand เปิดสำรองที่นั่งงานผ่านทางเว็บไซต์
MSDN Thailand Remix 2007 งานมีขึ้นในวันที่ 26 กันยายน 2550 (วันพุธ ไม่มีสอบพอดีเลย - - ดูผิดนึกว่าพฤหัสบดี)
เป็นการสัมมนาเกี่ยวกับโปรแกรม และเทคโนโลยีของ Microsoft ตัวใหม่ คือ
- Microsoft Silverlight (http://silverlight.net/)
- Microsoft Expression (http://www.microsoft.com/expression/)
ใครสนใจก็ไปนะ สัมมนาครั้งนี้เหมาะสำหรับ Web Developer และ Web Designer เลย Quiz Discrete: Countingปีการศึกษา 2550
Quiz ของ Discrete ทุกข้อจะเอามาจากไหนหนังสือครับ (รู้ทั้งรู้แต่ก็ไม่เคยอ่าน)
ที่จะเขียนออกมาให้ดู ถ้าข้อไหนอ่านไม่รู้เรื่องก็ไปไล่หาจากในหนังสือเอาเองละกัน
1. มีบ้านเลขที่ 1000-1099 และมีบ้านจำนวน 51 หลัง จงแสดงว่ามีบ้านอย่างน้อย 2 หลังที่มีบ้านเลขที่ติดกัน
2. แสดง C(n+r-q1-q2-...-qr-1,n-q1-q2-...-qr) เป็น Different unordered selections ของ n สิ่งที่ต่างกัน r ชนิด โดยแต่ละชนิดต้องหยิบมาอย่างน้อย q1 สำหรับชนิดที่ 1 q2 สำหรับชนิดที่ 2 และ qn สำหรับชนิดที่ n
3. แสดงโดยใช้ Combination argument ว่า C(n,r)C(r,k) = C(n,k)C(n-k,r-k)
4. มีเมือง 5 เมืองที่คณะกรรมการตรวจอาวุธต้องเข้าไปตรวจสอบ 1 ในนั้นคือเมือง X ซึ่งต้องสงสัยที่สุด จงหาลำดับที่คณะกรรมการจะเข้าไปตรวจสอบเมืองทั้ง 5 โดยมีข้อกำหนดว่าทุกเมืองต้องตรวจสอบ 2 ครั้ง และเมืองที่ต้องสงสัยที่สุดจะต้องไม่ถูกตรวจสอบ 2 วันติดต่อกัน
5. Trinary String ประกอบด้วย 0 1 และ 2
5.1 หา Recurrence Relationของ จำนวน String ยาว n ที่มี 0 ติดกัน 2 ตัว
5.2 จงบอก Initial Condition
5.3 ถ้า String มีความยาว 5 bit จะมี String กี่แบบตามข้อกำหนดในข้อ 5.1
6. แก้ปัญหา Linear Recurrence Relation โดย An = 5An-1 - 6An-2 + 2^n + 3n
ปล. นับถอยหลัง 2 สัปดาห์นรก
|
เว็บไซต์ต่างๆที่ได้จัดทำ หรือมีส่วนร่วมทั้งปัจจุบัน และผลงานที่ผ่านมา
|
||||||||||||||||||||||||||||||||||||||||||
|
|