ขนาดของตัวแปรในภาษา C และค่าสูงสุดต่ำสุดของตัวแปรนั้นๆ

ขนาดของตัวแปรในภาษา C และค่าสูงสุดต่ำสุดของตัวแปรนั้นๆ

จากตารางนี้จะเห็นว่ามีการใส่คำว่า ขั้นต่ำ (At least) ซึ่งหมายความว่าขนาดของตัวแปรอาจจะเปลี่ยนแปลงได้ขึ้นอยู่กับ CPU, Compiler และ OS

สำหรับ int และ Unsigned int เช่น ถ้าเป็น CPU 32บิต int และ Unsigned int จะมีขนาด 4 bytes (32 บิต)
ตัวอย่างขนาดของตัวแปรในภาษา C ด้านล่างนี้ compile จาก Windows 7 ด้วย gcc 4.9.2 -std=c99 32bit

แต่ใน Microcontroller ที่เป็น 16บิต int และ Unsigned int จะมีขนาด 2 bytes (16 บิต)

ส่วนถ้าเป็น CPU 64บิต, int และ Unsigned int แต่ละ OS จะมีขนาดทั้ง 4 bytes และ 8 bytes ขึ้นอยู่กับ Data models ตามตารางด้านล่างนี้เลย (หน่วยเป็นบิตนะในตาราง)

จัดหน้าให้มีทั้งแนวตั้งและแนวนอนใน Microsoft Word

ในบทความนี้จะมาสอนวิธี จัดหน้าให้มีทั้งแนวตั้งและแนวนอนใน Microsoft Word กัน โดยจัดให้เป็นแบบนี้ ก็คือมีทั้งหน้าเอกสารแบบแนวตั้ง และ แนวนอน อยู่ในเอกสารตัวเดียวกัน

ตัวอย่างวิธีทำก็คือ สมมติเรามีเอกสาร อยู่ 2 หน้าดังรูปแต่ต้องการทำให้หน้าที่ 2 เป็นแนวนอน ส่วนหน้าแรกยังคงเป็นแนวตั้ง
pagebrak1

วิธีทำก็สามารถทำได้โดยอันดับแรกให้เรากด ให้โปรแกรม word แสดงผล Paragraph mark แล้วเราก็จะเห็นคำว่า …Page Break… อยู่ด้านล่าง ตามรูป
pagebrak2

จากนั้นให้เราทำการใส่ Section Break แบบ Next Page แทน Page Break โดยเข้าไปที่แถบ Page Layout แล้วเลือก Breaks แล้วก็กดที่ Next Page
pagebrak3

จะเห็นว่า Page Break ถูกแทนที่ด้วย Section Break(Next Page) ด้านล่าง ซึ่งจะทำให้เกิดการแบ่งเอกสารเป็น 2 ส่วน ออกจากกันอย่างอิสระ
pagebrak4

จากนั้นเราก็ทำการปรับหน้าที่เราต้องการให้เป็นแนวนอน โดย เลือกจาก แถบ Page Layout แล้วตามด้วย Orientation เลือก Landscape เพื่อทำให้เอกสารเป็นแนวนอน
pagebrak5

เสร็จแล้วเราก็จะได้เอกสารที่มีทั้งแนวตั้งและแนวนอนใน Microsoft Word แล้วตามรูป
pagebrak6

วิธีเปิดดูการแสดงผลของ ไฟล์ Markdown โดย Sublime Text

สำหรับใครที่กำลังหาวิธีเปิดดูการแสดงผลของ ไฟล์ Markdown หรือ ว่าอยากดูว่าหลังจากเขียน Markdown แล้วผลลัพธ์จะออกมาเป็นหน้าตายังไง บางทีดาวโหลดไฟล์ .md มาแล้วก็อยากจะเปิดดู สามารถใช้ Package control ของ Sublime text ที่ชื่อว่า Markdown preview ซึ่งสามารถติดตั้งและใช้งานตามวิธีการต่อไปนี้
ให้เราติดตั้ง Package control ของ Sublime text ก่อนนะ ใครยังไม่ได้ติดตั้งก็สามารถทำตามได้จากบทความนี้ >> วิธีลง Package control ของ Sublime text

เปิด Package control โดยไปที่ Preferences>Pakage Control หรือใช้ key ลัด Ctrl + P
markdownpreview1

เลือก install Package
markdownpreview2

ติดตั้ง package ที่ชื่อว่า Markdown Preview
markdownpreview3

ติดตั้งเรียบร้อย
markdownpreview4

ทดลองใช้งานโดยเปิดไฟล์ markdown ขึ้นมา แล้วเปิด Command Palette โดยกด Ctrl+Shift+P แล้วพิมพ์ markdown เลือก Markdown Preview : Preview in Browser
markdownpreview5

เลือก markdown
markdownpreview6

เราก็จะเห็น ไฟล์ Markdown ไปแสดงผลที่ browser ของเรา
markdownpreview7

จะเห็นได้ว่าเราสามารถแปลงไฟล์ .md markdown เป็นไฟล์ .html ได้ด้วย โดยเลือก Markdown Preview : Preview in Browser : Save to HTML
markdownpreview5

Cppcheck เป็นโปรแกรมอะไร เอาไว้ใช้ทำอะไรกันนะ

cppcheck_150_gui

Cppcheck เป็นเครื่องมือในการวิเคราะห์ source code ของ ภาษา C และ C++ หรือที่เรียกว่า static analysis tool ซึ่งเป็นเครื่องมือที่สามารถใช้ในการช่วยตรวจสอบคุณภาพของ code ของเราได้ โดย Cppcheck นั้น บางคนอาจจะเข้าใจผิดคิดว่า Cppcheck ใช้สำหรับตรวจสอบ Systext ของภาษา C และ C++ แต่จริงๆแล้ว Cppcheck ไม่ได้ตรวจสอบ sysntext error แต่ใช้ในการตรวจหา Bug ที่เกิดจากการเขียนโปรแกรมที่ไม่ถูกต้อง ไม่ปลอดภัย หรือมีโอกาสที่จะเกิด Bug เช่น

การไม่ได้กำหนดค่าตัวแปรก่อนใช้งาน, มีโอกาสเกิด Memory leaks, การใช้ index ของ array ที่เกินจากที่ประกาศไว้, Resource leaks , การใช้ Standard Tamplate Libray ผิด เป็นต้น

ตัวอย่าง Source code ที่ใช้กับ Cppcheck

int main()
{
    char a[10];
    a[10] = 0;
    return 0;
}

จาก Source code จะเห็นว่าเราสามารถ compile ได้ผ่าน แต่เมื่อนำไปรันใช้งานจริงจะทำให้เกิด error ได้เนื่องจาก เรียก index ของ array เกิน ที่ประกาศไว้

หากใช้ Cppcheck เพื่อตรวจสอบก่อน ตัว Cppcheck ก็จะบอกเราว่า Error Array ‘a[10]’ index 10 out of bounds

ดังนั้นสำหรับใครที่เขียนโปรแกรมภาษา C หรือ C++ ก็อยากจะแนะนำให้พอเขียนเสร็จแล้วก่อนที่จะนำไป Test ให้ลองตรวจสอบกับโปรแกรม Cppcheck ก่อนจะได้ช่วยลด Bug ลงไปได้เยอะ สำหรับใครที่อยากจะใช้ก็สามารถดาวโหลด Cppcheck ได้ที่ http://cppcheck.net/ หรืออยากลองใช้ demo ได้ที่ http://cppcheck.net/demo/

การคิดค่าไฟฟ้าแบบ TOU คืออะไร

TOU ย่อมาจาก Time of Use หรือ อัตราตามช่วงเวลาของการใช้งาน
ตัวอย่างการคิดค่าไฟฟ้าแบบ TOU ตามการใช้งาน ของ การไฟฟ้าส่วนภูมิภาค PEA

PEA_TOU

จะเห็นว่า Peak หรือ On Peak คือช่วงเวลาทำงาน ที่มีความต้องการใช้งานไฟฟ้าที่มาก ส่วน Off peak นั้นจะอยู่ในช่วงกลางคืนและวันหยุดที่มีการใช้งานไฟฟ้าที่น้อยกว่าช่วง On peak ซึ่งใน 1 วัน จะมี On Peak และ Off peak หรือเราเรียกกันว่า มีการคิดค่าไฟฟ้าแบบ TOU 2 rate หรือ 2 อัตรานั้นเอง

ที่สำคัญก็คือถ้าเราใช้ไฟฟ้าในช่วง On peak เราก็จะเสียค่าไฟมากกว่าใช้ไฟฟ้าในช่วง off peak เนื่องจากการไฟฟ้าต้องผลิตไฟฟ้าเพื่อให้ทันต่อความต้องการใช้งานที่มีอยู่มาก เช่นจากที่ใช้ โรงไฟฟ้า 10 โรง ก็ต้องเพิ่มกำลังการผลิตเป็น 20 โรงเป็นต้น

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

วิธีสร้าง Project กับโปรแกรม CodeBlocks

สำหรับวิธีการสร้าง Project กับ โปรแกรม CodeBlocks สามารถทำตามขั้นตอนด้านล่างนี้ได้เลย

ไปที่เมนู File > New > Project
codeblocks-project-1

เลือก Console application แล้วก็กด ปุ่ม Go
codeblocks-project-2

เลือกภาษาที่ต้องการจะเขียน ในตัวอย่างจะเลือก ภาษา C แล้วก็กด Next
codeblocks-project-3

ตั้งชื่อ Project ของเรา และเลือก Folder ที่จะให้สร้างลงที่ไหน ส่วนช่องอื่นๆ โปรแกรมจะกรอกให้อัตโนมัติ แล้วก็กด Next
codeblocks-project-4

เลือก Compliere แนะนำให้เลือกเป็น GNU GCC Compilers แล้วก็กด Finish
codeblocks-project-5

Codeblocks ก็จะสร้าง Project ขึ้นมาดังรูป
codeblocks-project-6

ถ้าเราไปดูที่ Folder ของ Project ที่เราเลือกไว้ก็จะมีไฟล์ที่สร้างขึ้นมาอัตโนมัติ 2 ไฟล์ นั้นก็คือ main.c และ test.cbp โดย ไฟล์นามสกุล .cbp เป็นไฟล์ Project ของ CodeBlocksเพื่อเอาไว้ใช้ เปิด Project ของเราทีหลังได้
codeblocks-project-7

หากเราทดลองกดปุ่ม รัน สีเขียวๆ ก็จะเห็นหน้าต่าง Console แสดงผลการทำงานของ โปรแกรม
codeblocks-project-8

ก็เป็นอันเสร็จเรียบร้อยกับการสร้าง Project กับ โปรแกรม CodeBlocks เวลาเรามาเปิด Project ของเราทีหลังก็สามารถเปิดได้จากไฟล์นามสกุล .cbp ได้เลย

CodeBlocks โปรแกรมสำหรับเขียนโปรแกรมภาษา C และ C++

สำหรับใครที่กำลังหาโปรแกรมสำหรับเขียนโปรแกรมภาษา C หรือ C++ ก็ขอแนะนำโปรแกรมตัวนี้เลย นั้นก็คือ

codeblock-logo

Code::Blocks หรือ CodeBlocks เป็นโปรแกรม IDE สำหรับไว้เขียนโปรแกรมภาษา C C++ หรือ Fortran โดยตัวโปรแกรม CodeBlocks เขียนขึ้นมาจากภาษา C++ ตัวโปรแกรมนั้นเปิดเป็น Open-source และยังเป็น Cross-platform ที่สามารถทำงานบนระบบปฏิบัติการที่หลากหลาย ไม่ว่าจะเป็น Windows, Mac หรือ Linux

หน้าตาของโปรแกรม CodeBlocks

codeblocks-screen-example

ตัวโปรแกรม CodeBlocks นั้นมีความสามารถในการ Debug แบบเต็มรูปแบบ ไม่ว่าจะเป็น breakpoints, แสดงค่าตัวแปร, รันโปรแกรมทีละบรรทัด, Disassembly, ดู Call stack, ดู Register ของ CPU ต่างๆ

debug-codeblocks

ใครสนใจจะนำมาใช้ก็สามารถดาวโหลด CodeBlocks ได้ที่นี้แบบฟรีๆเลยจ้า http://www.codeblocks.org/downloads/26

Firmware กับ Software แตกต่างกันอย่างไร

หลายๆคนคงจะสงสัยและอยากรู้ความหมายของคำว่า Firmware ว่าหมายถึงอะไรและมันแตกต่างยังไงกับ Software แบบปกติ

firmware-is-software

จริงๆแล้ว Firmware ก็คือ Software ซึ่งเป็น Software ที่ออกแบบมาเพื่อทำงานในอุปกรณ์อิเล็กทรอนิกส์ (Hardware) เพื่อทำหน้าที่เฉพาะอย่าง ตัวอย่าง Firmware เช่น ใน
hard disk, BIOS ในคอมพิวเตอร์, มือถือ, กล้องถ่ายรูป, เครื่องเล่น mp3, Ecu ในรถยนต์, หรือแม้กระทั้งใน หุ่นยนต์ Curiosity ที่สำรวจดาวอังคารของ nasa

curiosity_self-portrait_at_big_sky_drilling_site

นอกจากนี้ภายใน Firmware อาจจะประกอบไปด้วย Software แบบอื่นเช่นอาจจะมี OS เช่น ในมือถือจะมี Android, IOS หรือ Windows ส่วนในหุ่นยนต์ Curiosity ที่สำรวจดาวอังคารของ nasa ก็มี OS ที่เรียกว่า VxWorks เป็นต้น

โดย Firmware นั้นจะถูกเก็บอยู่ใน Non-volatile memory (Non-volatile memory คือ memory ที่สามารถเก็บข้อมูลได้แม้ไม่มีไฟเลี้ยง เช่น ROM, PROM, EPROM, EEPROM, Flash, FRAM) ซึ่งจะหากเราต้องทำการนำ Firmware ลงไปเก็บไว้จะต้องทำการ Flash Firmware นั้นเอง

arduinodue_front

สรุปก็คือ Firmware นั้นไม่ได้มีความแตกต่างจาก Software แต่กลับกัน Firmware ก็คือชื่อเรียก Software ประเภทหนึ่งที่ทำงานร่วมกับ Hardware นั้นเอง

แนะนำโปรแกรมลดขนาดไฟล์ และ แปลงไฟล์ mp4 mkv กับ HandBrake

ในบทความนี้จะมาแนะนำโปรแกรมลดขนาดไฟล์ของวิดีโอ อีกทั้งยังสามารถ แปลงไฟล์ mkv เป็น mp4 หรือ mp4 เป็น mkv โดยโปรแกรมที่ว่านั้นมีชื่อว่า HandBrake

handbrake-logo

HandBrake เป็นโปรแกรม Freeware และยัง Open source อีกด้วย โปรแกรม HandBrake สามารถดาวโหลดไปติดตั้งได้ทั้ง windows, Linux หรือสำหรับคนที่ใช้ Mac OS ก็ได้ สามารถดาวโหลดได้จากที่นี้ https://handbrake.fr/downloads.php

นี้คือหน้าตาโปรแกรม HandBrake มาทดลองแปลงไฟล์กันดีกว่า

เริ่มต้นเลยก็ให้เราไปเลือกไฟล์ที่ต้องการจะแปลงโดยคลิกเลือกที่ เมนู Source ด้านซ้ายมือบน สามารถเลือกเฉพาะไฟล์หรือจะแปลงทั้งโฟเดอร์ก็ได้

handbrake1

ให้เราเลือก output ที่เราอยากได้จะให้แปลงเป็นไฟล์ mp4 หรือ mkv ก็ได้ อย่าลืมเลือก Destination ว่าไฟล์ที่แปลงเสร็จแล้วจะให้วางไว้ที่ไหน

ทางด้านขวามือจะเป็นค่า Setting ที่เหมาะสำหรับอุปกรณ์ที่เราจะนำไฟล์วิดีโอนั้นไปเปิด ซึ่งมีให้เลือกหลากหลายไม่ว่าจะเป็น iPad, iPhone, Android สามารถเลือกได้ตามใจชอบ

handbrake2

หรือจะปรับแต่งเองก็ได้ โดยเลือกที่ Quality เลื่อนไปทาง Lower Quality ก็จะทำให้ไฟล์มีขนาดเล็กลงแต่ก็ต้องแลกกับความคมชัดของวิดิโอ เมื่อเลือกเสร็จแล้วก็กด ปุ่ม Start สีเขียวๆได้เลย

handbrake4

จะเห็นว่าโปรแกรมเริ่มทำการแปลงไฟล์แล้วสามารถดูได้จาก Status ด้านล่าง จากรูปจะเห็นว่า 4 % ละ ใช้เวลาแปลงอีก 1 นาที 38 วินาที

handbrake3

และนี้ก็เป็นโปรแกรมที่ควรมีติดเครื่องไว้อีกโปรแกรมหนึ่งสำหรับ HandBrake แนะนำไว้เลย