วันอังคารที่ 28 ธันวาคม พ.ศ. 2553

Discreate และ Continuous Data

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

ชุดข้อมูลแบบตัวเลขสามารถแบ่งออกได้เป็น 2 กลุ่ม คือ discrete และ continuous

Discrete

ชนิดข้อมูลที่เป็นแบบไม่ต่อเนื่องปกติชุดข้อมูลจะเป็นแบบจำกัด หรือ มีจำนวนห่างของช่องวห่างระหว่างชุดข้อมูลที่คงที่


ตัวอย่าง มีคำถาม 5 ข้อในการสอบวิชาคณิตศาสตร์ ตัวเลือกที่ถูกต้องของคำตามในการตอบคำถามของนักเรียนเป็นข้อมูลแบบไม่ต่อเนื่อง คือ ตัวเลขของคำตอบที่ถูกต้องที่เป็นไปได้ประกอบด้วย : 0, 1, 2, 3, 4, หรือ 5 เป็นค่าที่มีขอบเขต ดังนั้นถ้าต้องการที่วาดตัวเลขลงบนเส้นจำนวน ก็สามารถวาดระยะห่างระหว่างตัวเลขได้อย่างคงที่


ตัวอย่าง ในการสอบใบขับขี่ของ Las Vegas กับจำนวนคนที่สอบผ่านในแต่ละเมือง ถามว่าจำนวนครั้งที่แต่ละคนมาสอบเพื่อให้ผ่านและได้รับใบขับขี่เป้นกี่ครั้ง 1 หรือ 2 หรือ 3 หรือ 4 หรือมากกว่านั้น ดั้งนั้นจำนวนที่เป็นไปได้คือ 1, 2, 3, … ซึ่งเป็นตัวเลขที่ไม่มีขอบเขต แต่เป็นระบบตัวเลขที่มีระยะห่างที่แน่ระหว่างตัวเลข เวลาเขียนลงบนเส้นจำนวนก็สามารถทำได้เช่นกัน ก็ถือว่าเป็นข้อมูลที่ไม่ต่อเนื่องด้วย


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


Continuous data

มักจะกล่าวถึงส่วนที่เหลือจากตัวเลขปกติ เช่น ทศนิยม หรือเป็นตัวเลขเกี่ยวกับการประมาณค่าทางด้านกายภาพ


ตัวอย่าง ความสูงของต้นไม้เกี่ยวข้องกับข้อมูลแบบต่อเนื่อง ซึ่งสามารถเป็นไปได้ว่าต้นไม้จะสูงครั้งละ 76.2"  หรือ ประมาณ 76.29 หรือประมาณ 76.2914563782  คุณเชื่อได้หรือไม่ว่ามันจะสูงเท่าไหร่ เป็นไปได้ว่าขึ้นอยู่กับเครื่องมือที่ใช้ในการวัดก็ได้


มีทางเดียวที่จะบอกว่าเป็นข้อมูลแบบต่อเนื่องหรือไม่ ต้องถามตัวเองว่า เป็นไปได้ไหมที่ตัวเลขที่จะเขียนจะต้องติดเศษส่วน หรือทศนิยมด้วย ถ้าใช่ ข้อมูลนั้นจะเป็นข้อมูลแบบต่อเนื่อง


ตัวอย่าง ความยาวของอายุการใช้งานของหลอดไฟ ก็เป็นตัวอย่างหนึ่งของข้อมูลแบบต่อเนื่อง เนื่องจากเป็นได้ว่าอายุการใช้งานของหลอดไฟจะเป็น 800 hours? หรือประมาณ 800.7? หรือประมาณ 800.7354? เพราะบางครั้งอายุของหลอดไฟก็ไม่ได้ 800 hours ตรง ๆ แต่อาจจะมี มากกว่า หรือน้อยกว่าได้ และมากกว่า หรือน้อยกว่าเท่าไหร่ก็ยากต่อการบอกเป็นค่าตัวเลข ก็ถือว่าข้อมูลแบบนี้เป็นข้อมุลแบบต่อเนื่องด้วย


วันพุธที่ 10 พฤศจิกายน พ.ศ. 2553

Windows cannot find 'csrcs.exe'

การแก้ไขปัญหา

Windows cannot find 'csrcs.exe'. Make sure you typed the name correctly, and then try again. To search for a file, click the start butto, and then click search.


ใช้งานเครื่องปกตินะครับ ปิดเครื่องแล้วเปิดขึ้นมาใหม่ กับเจอปัญหาตามข้างบน เหมือนหาไฟล์อะไรสักอย่างไม่เจอ งง ไปนาน

แต่เอาวิธีการแก้ไขบอก เผื่อจะแก้ไขปัญหาได้ครับ เพราะตอนนี้ของผมหายแล้ว

1. เข้าไปที่ start->run แล้วพิมพ์ regedit
2. เลือกที่ My Computer ตัวเลือกแรกสุดของ ลำดับด้ายซ้าย แล้วค้นหาด้วยคำว่า csrcs จะเจอประมาณ 2 จุดครับ

หนึ่งในนั้นคือ ตำแหน่งนี้นะครับ แต่กดค้นหาไปเรื่อยๆ ครับ เจอแล้วลบทิ้ง

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\Run

และจะเจออันที่ 3 อีกครับ


แล้วแก้ไขค่า


เป็นดังนี้


คลิก OK แล้วก็ restart เครื่อง ก็หายแล้วครับ ....


วันศุกร์ที่ 5 พฤศจิกายน พ.ศ. 2553

Signal และ Slots ที่ใช้ใน Qt


การใช้งานใน Qt นั้นจะมีกลุ่มตัวแปร 2 แบบที่ใช้งาน ซึ่งแต่ละแบบเราก็ควรที่จะเลือกให้ใช้เหมาะสม ผลกระทบผมก็ยังไม่รู้นะครับว่ามีส่งผลกระทบตรงไหนบ้าง เพราะัยังไม่รู้เหมือนกัน ดังนั้น ผมขออธิบายพอคร่าว ๆ ก่อน ดังนี้ครับ


       Signal                                            
เป็น method ที่เรียกใช้งานแล้วทำหน้าที่ส่งออกข้อมูลมากกว่าจะทำการประมวลผล จากมุมมองของ programmer ต้องประกาศ prototype ของ signals เป็นแบบส่งออกเท่านั้น และประกาศเอาไว้ในส่วนของ signals of Class



        Slots                                               
เป็นสมาชิกของ function ที่สามารถเรียกเป็นคำตอบของ signal ที่จะเป็นผลลัพธ์ส่งออกไป คุณจะบอก compiler ด้วยการนำ slots ไปไว้ในส่วนของ public slots, protected slots | private slots ระดับการเข้าถึง slots จะปกป้อง slots เมื่อมีการเรียกใช้ method ดังนั้นเราสามารถอ้างถึง slots ที่เป็น private | protected จากคลาสอื่น ได้ผ่านทาง signal


ยกตัวอย่างการใช้งานดังนี้

เปิดโปรแกรมขึ้นมา
Open Qt Creator


ทำการสร้าง Project แบบ Qt C++ Project -> Qt Console Application แล้วก็เลือกที่ Choose...

Create New Project

New Project
แล้วสร้างไฟล์ แบบ C++ Source File และ C++ Header File และจะได้โครงสร้างไฟล์ดังภาพด้านล่าง

New Files and Classes
C++ Header File
MyClass.cpp
main.cpp


หลังจากนั้นก็ทดสอบคำสั่งและได้ผลลัพธ์ดังนี้

ผลการรันโปรแกรม
โปรแกรมนี้เป็นการทดสอบการฟังก์ชัน Setter and Getter เพื่อให้เห็นระดับการเข้าถึงตัวแปร และหน้าที่และความสำคัญของ Signal and Slots โอกาสหน้าเดี๋ยวหาเรื่องใหม่มาพูดครับ ...

วันพฤหัสบดีที่ 4 พฤศจิกายน พ.ศ. 2553

ทดลองเขียน Hello world! โดยใช้ Library ของ Qt ด้วยการใช้ Console

 จากที่สนในมานานแล้วว่า Qt นี้มันคืออะไร ทำงานอย่างไร แต่ก็ยังไม่ได้จริงจังสักที แค่เปิด ๆ ปิด ๆ อยากอ่านก็เปิด ๆ อ่านไม่เข้าใจก็ปิด ๆ ออกไป ตอนเช้ากับบรรยากาศหนาวในวันนี้ทำให้อยากลองเขียนจริง ๆ ขึ้นมาสักทีก็เลยลงมือเขียน จนสำเร็จออกมาได้ ถึงแม้จะเป็นโปรแกรม Hello world แต่ สิ่งที่ได้ไม่ได้แค่นั้นครับ อย่างน้อย ๆ ก็ได้วิธีการ compile และ run และ การติดตั้งเบื้องต้น ซึ่งจะนำเราไปสู่โปรแกรมที่ใหญ่ ๆ ขึ้นไป ด่านแรกและอยากคือการตั้งสภาพแวดล้อมในการทำงานนั้นเอง 



ขั้นตอนครับ 

1. ประกอบด้วยคำสั่งอย่างง่ายครับให้โปรแกรมมันแสดงข้อความออกมา ตามด้านล่าง

example source code

ตัวอย่าง Folder ที่จัดเก็บ


folder contain cpp fiile

2. เปิด qt console แล้วสร้าง Project สำหรับ Qt โดยใช้คำสั่ง qmake –project
menu open Qt console

start Qt console

ใช้คำสั่ง

use qmake -porject
จะมีไฟล์เพิ่มขึ้นมาใน Folder ที่จัดเก็บ

use qmake -porject and result

แล้วเพิ่มบรรทัดสำหรับแสดงผลแบบ console เข้าไปในไฟล์ .pro


edit project config to support console application

3. เตรียมสภาพแวดล้อมของการ compile ด้วย qmake จะได้ไฟล์ Makefile, Makefile.Release,Makefile.Debug และ Folder 2 อัน คือ degug and release

ดังภาพด้านล่าง

use qmake



file after qmake

4. build Project จาก Makefile ด้วยคำสั่ง mingw32-make –w และทดสอบ run คำสั่ง พร้อมผลลัพธ์ดังภาพด้านล่าง


ผลการ build

ผลการรัน



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

ติดตั้งสภาพแวดล้อมสำหรับเขียน C++ ด้วย Qt

C++ ก็เป็นอีกหนึ่งภาษาคอมพิวเตอร์ที่มีความน่าสนใจ และมีความสามารถในการทำงานที่หลากหลายครับ ที่ผมเคยเห็นแต่ก่อนก็จะมี Borland C++, Visual C++, Turbo C++ เหล่านี้เป็นต้นครับ มาวันหนึ่งก็ได้รู้ว่ามีไลบรารี่สำหรับการเขียน C++ ที่มีความน่าสนใจ คือ Qt เลยอยากจะลองศึกษาดูว่ามีการทำงานอย่างไร แต่ก็จนแล้วจนเล่า ไม่ได้สำเร็จสักที อาจจะเพราะอยากมากสำหรับตัวเองตอนนั้น อะไร ๆ ก็มีแต่ภาษาอังกฤษ ผ่านมาเป็นเวลานาน ก็เลยตัดใจจะเริ่มศึกษาจริง ๆ สักที่ก็เลยเิริ่มต้นด้วยการเขียนประสบการณ์จากการติดตั้ง Qt ก่อนเลยครับ

ขั้นตอน

ดาวโหลดไฟล์ได้จากเว็บไซต์นี้ http://qt.nokia.com/products/qt/downloads มีทั้งแบบ Open source และ แบบ Commercial ความสามารถก็แตกต่างกันออกไปครับ



ผมเลือกโหลดแบบ LGPL ครับ


หากไม่ให้บันทึกอัตโนมัติคลิกที่ลิงค์ได้เลย

หลังจากนั้นก็ทำการติดตั้งก็เป็นอันเรียบร้อย คงไม่ต้องเลือก option ใด ๆ ติดตั้งแบบ Next ตลอดเลย ^_^ 





ผลที่ได้จากการติดตั้งแสดงได้ดังนี้ครับ



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

วันเสาร์ที่ 9 ตุลาคม พ.ศ. 2553

วันพุธที่ 21 กรกฎาคม พ.ศ. 2553

หาพิกัด latitude และ longtitude บน google map

หาตำแหน่ง ปักหมุด ตัว A สีแดงได้แล้ว ก็รัน สคริป นี้ที่ address bar ของ browser ได้เลย

javascript:void(prompt('',gApplication.getMap().getCenter()));

วันพุธที่ 30 มิถุนายน พ.ศ. 2553

ImageJ

imageJ เป็นอีกเครื่องมือในการประมวลผลภาพได้อย่างมีประสิทธิภาพ และมีความรวดเร็วในการประมวลผล รองรับการทำงานของรูปแบบภาพที่มีความหลากหลาย เช่น  GIF, JPEG, BMP, PNG, PGM, FITS and ASCII. Open DICOM. Open TIFFs, GIFs, JPEGs, DICOMs and raw data using a URL. สามารถซูมภาพได้ถึง 32 เท่า และอื่น ๆ อีกมากมายดังคำอธิยายด้านล่าง


Runs Everywhere:ImageJ is written in Java, which allows it to run on Linux, Mac OS X and Windows, in both 32-bit and 64-bit modes.

Open Source:ImageJ and its Java source code are freely available and in the public domain. No license is required.User

Community:ImageJ has a large and knowledgeable worldwide user community. More than 1700 users and developers subscribe to the ImageJ mailing list.

Macros:Automate tasks and create custom tools using macros. Generate macro code using thecommand recorder and debug it using the macro debugger. More than 300 macros are available on the ImageJ Web site.

Plugins:Extend ImageJ by developing plugins using ImageJ's built in text editor and Java compiler. More than 500 plugins are available.

Toolkit:Use ImageJ as a image processing toolkit (class library) to develop applets, servlets or applications.

Speed:ImageJ is the world's fastest pure Java image processing program. It can filter a 2048x2048 image in 0.1 seconds (*). That's 40 million pixels per second!Data Types:8-bit grayscale or indexed color, 16-bit unsigned integer, 32-bit floating-point and RGB color.

File Formats:Open and save all supported data types as TIFF (uncompressed) or as raw data. Open and save GIF, JPEG, BMP, PNG, PGM, FITS and ASCII. Open DICOM. Open TIFFs, GIFs, JPEGs, DICOMs and raw data using a URL. Open and save many other formats using plugins.

Image display:Tools are provided for zooming (1:32 to 32:1) and scrolling images. All analysis and processing functions work at any magnification factor.

Selections:Create rectangular, elliptical or irregular area selections. Create line and point selections. Edit selectoins and automatically create them using the wand tool. Draw, fill, clear, filter or measure selections. Save selections and transer them to other images.

Image Enhancement:Supports smoothing, sharpening, edge detection, median filtering and thresholding on both 8-bit grayscale and RGB color images. Interactively adjust brightness and contrast of 8, 16 and 32-bit images.

Geometric Operations:Crop, scale, resize and rotate. Flip vertically or horizontally.

Analysis:Measure area, mean, standard deviation, min and max of selection or entire image. Measure lengths and angles. Use real world measurement units such as millimeters. Calibrate using density standards. Generate histograms and profile plots.

Editing:Cut, copy or paste images or selections. Paste using AND, OR, XOR or "Blend" modes. Add text, arrows, rectangles, ellipses or polygons to images.Color Processing:Split a 32-bit color image into RGB or HSV components. Merge 8-bit components into a color image. Convert an RGB image to 8-bit indexed color. Apply pseudo-color palettes to grayscale images.

Stacks:Display a "stack" of related images in a single window. Process an entire stack using a single command. Open a folder of images as a stack. Save stacks as multi-image TIFF files.

ImageJ เป็นเครื่องมือที่ช่วยในการประมวลผลภาพที่พัฒนาด้วยภาษาจาวา (Java) และมี Library สำหรับการพัฒนาด้วยภาษาจาวาด้วย ถึงเป็นอีกเครื่องมือที่มีความน่าสนใจไม่น้อยช่วยลดเวลาในการเขียนคำสั่งทั้งหมดลงไปได้ บทความต่อไปจะได้นำเสนออีกครั้งครับ

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

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

กำหนดค่า คำสั่ง include ให้กับตัวแปรใน php

จากปัญหาการ include ค่าจาก php ปกติแล้ว ผลการ include ปกติจะได้ค่ามาแสดงผลให้กับไฟล์ที่ได้เรียกใช้ include หากต้องการกำหนดค่าที่ได้จากการ include นั้นไว้ในตัวแปรสักตัวหนึ่ง เพื่อนำไปใช้ในการคำนวนต่อไปนั้น สามารถใช้วิธีการนี้เป็นอีกวิธีการหนึ่งที่อาจจะช่วยแก้ปัญหาได้ ดังนี้

แบบนี้ผิดนะครับลองแล้วไม่ได้

$content = include("file.php");


แต่ลองมาใช้แบบนี้สามารถใช้งานได้ครับ

ob_start();
include('file.php');
$content = ob_get_clean();









ขอบคุณที่มา
http://www.codingforums.com/archive/index.php/t-124537.html

วันศุกร์ที่ 7 พฤษภาคม พ.ศ. 2553

php template

smarty template

Smarty เป็นเครื่องมือแม่แบบสำหรับ PHP, อำนวยความสะดวกในการแยกของงานนำเสนอ(HTML / CSS) จากลอจิกโปรแกรม ซึ่งสะท้อนว่าโค้ด PHP คือตรรกะการนำไปใช้และจะถูกแยกออกจากงานนำเสนอ


ดูเพิ่มเติม จาก http://www.smarty.net/




powertemplate

PowerTemplate เป็นระบบแม่แบบข้ามแพลตฟอร์มที่ทำงานได้ดีบนโปรแกรมประยุกต์ใช้งานในไคลเอนต์เป็นโปรแกรมใช้งานบนเซิร์ฟเวอร์
ภาษา PowerTemplate ใช้งานง่ายขณะที่ในเวลาเดียวกันที่มีการยืดหยุ่นและทรงพลัง

PowerTemplate Engine สามารถใช้ได้สำหรับ Python, PHP และสำหรับ Objective-C/Cocoa

เพื่อหาข้อมูลเพิ่มเติมและรับ PowerTemplate ไปที่หน้าโครงการบน SourceForge


ดูเพิ่มเติม จาก http://powertemplate.sourceforge.net/

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

php nowdoc

http://th.php.net/manual/en/language.types.string.php#language.types.string.syntax.nowdoc

php heredoc



Heredoc เป็นวิธีที่ดีในการสร้างสตริงใน PHP ที่มีเส้นมากขึ้น แต่โดยไม่ต้องใช้ใบเสนอราคาHeredoc ใช้ไม่ค่อยเป็นวันโดยใช้วันที่มีความซับซ้อนมากขึ้นเช่นการสร้างสตริงด้วยเครื่องหมายคำพูดหรือคำพูดคู่ นอกจากนี้ไม่ถูกต้อง heredoc ใช้งานแล้วสามารถนำไปสู่ปัญหาในรหัสของคุณ

แต่ถ้าคุณต้องการที่จะใช้คุณสามารถทำได้ด้วยวิธีดังต่อไปนี้






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








ผลลัพธ์

Hello Max! This is a demo message with heredoc.

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





ขอบคุณ
http://www.phpf1.com/tutorial/php-heredoc-syntax.html

วันพุธที่ 6 มกราคม พ.ศ. 2553

php session_start แล้ว warning ไม่หาย

บางทีนะครับ เรื่อง warning ก็น่าปวดหัว แต่ที่ผมเจอมากับตัวเองก็คือ

ทำ session_start() แล้วมี warning ตลอด ทั้งที่ ไฟล์นั้นมีแค่คำสั่ง session_start เพียงคำสั่งเดียวก็ตาม

วิธีการแก้ไข

ง่ายมาก ๆ ครับ

สร้างไฟล์ใหม่ขึ้นมาแล้ว แล้วก็เอา code เดิมเราไปทดสอบ สามารถทำงานได้เฉยเลยครับ

เพิ่มเติมนะครับ เพราะบางที่ Save งานจากโปรแกรมที่แตกต่างกันก็ทำให้เกิดลักษระอาการแบบนี้ขึ้นมาได้เหมือนกันครับ

ลองดูนะครับเผื่อจะเป็นปัญหาเดียวกัน และอาจจะแก้ไขได้ด้วยวิธีการเดียวกัน