บทความ

กำลังแสดงโพสต์จาก 2009

Run As (ขอใช้สิทธิ อื่นในการทำงาน)

รูปภาพ
ปกติ คำแนะนำของ ผู้เชี่ยวชาญ ทางด้าน ความปลอดภัย ของระบบคอมพิวเตอร์ (Computer Security) จะแนะนำว่า ในการใช้งาน computer โดยทั่วไป ให้ใช้ user account ที่มีสิทธิ การทำงาน เพียง แค่ ระดับ user ธรรมดา (normal user) ก็เพียงพอ ต่อการใช้งานแล้ว และ จะปลอดภัย จาก ภัยอันไม่พึงประสงค์ อีกด้วย เช่น พวก virus หรือ spyware ที่ จะแฝงตัว มาตาม application ที่เราใช้งาน เช่น Internet Explorer หรือ Browser นั่นเอง แต่โดยทั่วไปแล้ว ไม่เป็นอย่างนั้น เนื่องจาก ความ ไม่รู้ ความขี้เกียจ หรือ ความอยากเป็น ใหญ่ในระบบ ตลอดเวลา คือ ก็ใช้งาน ด้วยสิทธ Administrator ตลอดเวลา เพื่อง่ายต่อ การติดตั้งโปรแกรม หรือ แก้ไข Config ของระบบ แต่ถ้าเรามองให้ดี ส่วนใหญ่เราจะไม่ค่อยลงโปรแกรมกันบ่อยๆ หรอกครับ หรือ จะ แก้ไข Config อะไรทุกวัน ถ้าเราไม่ใช่ Software tester หรือ System Configurator อะไรพวกนั้น ปกติ เราเปิดเครื่อง ใช้งาน application และ ก็ shutdown ก็แค่นั้น นะ ฉะนั้น สิ่งที่ผมจะแนะนำคือ ใช้สิทธิ user ในการทำงาน แต่ถ้าต้องการติดตั้งโปรแกรม ก็ใช้ Utility Run As เข้ามาช่วย Run As เป็น Utility ที่มีให้ใช้งานใน windows เป...

Coding C# Write Excel file HTML format

จากครั้งที่แล้ว ที่พูดถึง concept กันไปแล้วเรื่อง write เป็น excel ด้วย html code นะครับ คราวนี้มาดู การ code กันครับ ขอแสดงตัวอย่างก่อน เราจะ ให้ output มีการแสดงผลแบบนี้ คือ Product id Product Name Price 1 Product1 2000 2 Product2 2500 ดังนั้น เราต้องเขียน code html แบบนี้คือ <table style =' width : 318px; height : 124px;' border ='1' cellpadding ='0' cellspacing ='0' > <tbody> <tr> <th> Product id </th> <th> Product Name </th> <th> Price </th> </tr> <tr> <td style ='text-align: center;' > 1 </td> <td> Product1 </td> <td style ='text-align: right;' > 2000 </td> </tr> <tr> <td style ='text-align: center;' > 2 </td> <td> Product2 </td> <td style ='text-align: right;' > 2500 </td> </tr> </tbody></table> ดังนั้น ผม จะ แสดงตัวอย่าง code ให้ดูคือ StringBu...

Write Excel File With C#

หลายท่านที่เขียน โปรแกรม ย่อมเคยมีแหละ ว่า บรรดา user ต้องการ report เป็น Excel ไฟล์ มีหลายๆ Solution ที่สามารถ ทำได้ ผมจะกล่าวถึง excel ใน version 97-2003 (นามสกุล .xls) ก่อนนะครับ 1. วิธีแรก คือ ใช้ COM+ (Interop) แต่ วิธีนี้ ในตอนพัฒนาโปรแกรม และ เครื่องที่จะใช้งาน ต้องมี การ Install Excel ด้วย ถึงจะสามารใช้งานได้ และ ติดตรงที่ Version ของ Excel ที่ใช้ต้องตรงกันด้วย 2. การใช้ Write Text ในรูปแบบ CSV ก็ได้การแสดงผล ในรูปแบบ Text ก็มีปัญหาในการแสดงผล หรือการจัดรูปแบบให้สวยงามได้ยาก 3. การใช้ Crystal Report ช่วย เนื่อง จาก ตัว Crystal Report มี Function ในการ Export ในรูปแบบ Excel ได้ แต่ก็ ติดในส่วนของ License ในตัว Developer ถ้า ท่านมีการใช้งาน Crytal Report อยู่แล้ว ก็ไม่น่ามีปัญหาอะไร 4. ใช้การ Write file ในรูปแบบ HTML Format แล้ว Save ออกไปใน File .xls ซึ่ง วิธีนี้ เป็นวิธีที่ผมจะ มานำเสนอ ในตอนนี้ เนื่องจาก ตัว Programmer เอง ไม่จำเป็นต้องใช้ Driver หรือ Component อื่นๆ มาช่วยเลย ยกเว้นแค่ ความรู้เรื่อง ภาษา HTML เล็กน้อยเท่านั้นเอง และ ที่เหลือก็แค่ Test ด้วย Browser เพื่อดูผลล...

พลุ งานวันพ่อ ปี 2551 ที่สวนหลวง ร.9

รูปภาพ
ผมเขียน แต่บทความเกี่ยวกับการ coding มา ก็มากแล้วครับ บางทีมันก็เบื่อๆ เหมือนกัน มาลองเขียนบทความ แบบ จรรโลงใจ กันบ้างก็ดีนะครับ ช่วงนี้ใกล้วันพ่อ แล้ว ผมมี video clip ที่ผมถ่ายเอง ในงาน วันพ่อ แห่งชาติ ปี 2551 มาให้ดู เวลา เกือบ 10 นาที เนื่องจากไฟล์ มันใหญ่ ผมจะขอ ตัดไฟล์ออก เป็นส่วนๆ เพื่อง่ายต่อการ upload ดูแล้วเพลินดีครับ ทำให้อยากดู อีก ยิ่งปีนี้ ทาง รัฐบาล มีการจัดงานเฉลิมฉลองใหญ่ ยิ่งอยากดูครับ ขอเวลา Upload วันนึงครับ เดี๋ยว พรุ่งนี้ ได้ดูแน่ครับ เอาภาพนิ่งไปดูก่อน .. อย่าลืม เข้ามาดูละครับ..

SQL Command Convert multiple rows to one row csv format

ไม่แน่ใจว่า แต่ละท่านเคยเจอ โจทย์แบบว่า แปลง ข้อมูลจากที่เก็บข้อมูล เป็น row base แปลงเป็น 1 column โดย ให้ขั้นข้อมูลระหว่าง row ด้วย comma หรือไม่ เช่น ตัวอย่าง การหาว่า แต่ละวัน มีการขายสินค้าอะไรไปบ้าง สรุปเป็นวันๆ โดยในวันนั้นๆ ให้แสดง ผลว่า มีรายการสินค้าอะไรบ้าง ในรูปแบบ รหัสสินค้า คั่น ด้วย comma คล้ายๆ csv format (comma separate value) ข้อมูลต้นฉบับ เก็บเป็น record จำนวน 1 record เก็บข้อมูลดังนี้ วันที่ | รหัสสินค้า|จำนวน 1/2/09 | 1 | 5 2/2/09 | 1 | 10 1/2/09 | 2 | 10 2/2/09 | 2 | 15 1/2/09 | 3 | 10 2/2/09 | 3 | 10 3/2/09 | 3 | 10 1/2/09 | 4 | 10 อยากได้ผลลัพธ์ สรุปเป็น วันๆ ดังนี้ วันที่ | รหัสสินค้า 1/2/09 | 1,2,3,4 , 2/2/09 | 1,2,3 , 3/2/09 | 3 , วิธีการทำก็คือ การ select ข้อมูลให้อยู่ในรูปแบบ string หรือ (varchar,nvarchar) ขนาดใหญ่ โดยให้คุณเขียน function มา 1 ตัว ในการ แปลง multirow เป็น one row csv format กรณี SQL 2005 สามารถใช้ SELECT FOR XML PATH ไ...

Function DateFormat สำหรับ Crystal Report 2008

ในการ เขียน report ต้องมีอยู่แล้ว ว่าต้องการ set format วันที่ให้เป็นไปตามต้องการ โดยไม่ต้องไม่ยุ่งกับ regional setting แน่นอนต้องเขียนขึ้นมาใช้เอง เพราะว่า function ใน crystal report มัน ไม่ได้เขียนมาเพื่อคนไทย ดังนั้น อยากได้แบบไหนก็ต้องเขียนเอง ตัวอย่าง ที่ผมจะนำมาให้ดู ก็เป็น function date format รับ parameter 3 ตัว คือ 1. วันที่ (วันที่ ที่ต้องการแปลง) 2. รูปแบบ (รูปแบบที่ต้องการ) 3. ตัวคั่น (ตัวคั่น ระหว่าง วัน เดือน ปี) มาดู Code กันเลยครับ Function ( datevar d, StringVar style, StringVar separator ); ( // Crystal Report Custom function // Date String // By Narong Sungkhamalai SELECT (style) //American Long CASE "al" : ( Select ( Month (d)) Case 1 : "January" Case 2 : "February" Case 3 : "March" Case 4 : "April" Case 5 : "May" Case 6 : "June" ...

T-SQL, Function End of Month

เหมือนเดิม function ที่น่าจะต้องใช้บ่อยๆ ครับ คือ function End Of Month หรือ หาวันสิ้นเดือน ครับ ก็ไม่ยากอะไรหรอกครับ แต่มันก็ใช้บ่อยๆ เขียนไว้ใช้ ก็สะดวกดี ไม่จำเป็นต้องเขียนใหม่ทุกครั้ง สิ่งที่ต้องการ คือ ป้อน input เป็น วันที่ แล้ว return เป็น วันที่สิ้นเดือน ของเดือน นั้น หลักการที่ผมใช้คือ 1. หาวันที่ 1 ของเดือน ของวันที่ input 2. บวก ไป 1 เดือน ได้วันที่ 1 ของเดือนถัดไป 3. ลบ 1 วัน ได้วันสิ้นเดือน ของ วันที่ input แค่นี้ครับ ต่อไป มาดู code T-SQL กันครับ เอาตาม concept ที่ว่า ไม่ได้ พลิกแพลงอะไรมากครับ ส่วนใครจะเอาำไป optimize อย่างไร ไม่ว่ากัน อันนี้เป็น Code ของ SQL Server 2005 ใน code จะมีการ set เวลา ให้เป็น 0:00 ด้วยครับ CREAT FUNCTION [app_main].[fnEndOfMonth] ( @dateint smalldatetime ) RETURNS smalldatetime AS BEGIN -- Declare the return variable here DECLARE @DOut smalldatetime --for output date DECLARE @d int --for day DECLARE @h int --for hour DECLARE @m int --for minute -- Add the T-SQL statements to compute the retur...

Function Baht Text บน Crystal Report

ผมว่าหลายท่านก็คง เคยใช้ Function BahtText ใน Excel มาแล้ว แต่ปรากฎว่า บน Crystal Report ไม่มีให้ใช้ ก็ต้องเขียนมันขึ้นมาเอง ละ บางท่านก็คง มี Function ไ้ว้ใช้อยู่แล้ว แต่ผมก็ขอเสนอ Idea ในการเขียนไว้หน่อยแล้วกัน เผื่อว่าใคร จะนึกไม่ออก บอกไม่ถูก เคยเขียนแล้วแต่ ไม่รู้ เอาไฟล์ไปไว้ไหน ก็มาเอา Code ผมไป ประยุกต์ใช้ ก้อ ไม่ว่ากัน (ได้เฉพาะเลขบวก หรือ มากกว่า หรือเท่ากับ ศูนย์ และ ตัวเลขไม่เกิน 12 หลัก ) Concept ก็ง่ายๆ ตามวิธีของผม คือ 1. วิธีการแปลง ตัวเลขเป็น String ก่อน ด้วย จำนวนทศนิยม 2 ตำแหน่ง ตัด Comma หรือ เครื่องหมาย ฿ หรือ $ ออก 2. แยกส่วน บาท และ สตางค์ ออกจากกัน ด้วยทศนิยม 3. นำส่วนสตางค์ มาแปลง เป็นคำ 4. นำส่วนบาท มาแปลง เป็นคำ 5. นำส่วนบาท และ สตางค์ ที่เป็น คำแล้ว มาเชื่อมกัน 6. แปลงคำพิเศษ เช่น ยี่สิบ หรือ คำว่า เอ็ด หลักการมีแค่นี้ คราวนี้มาดู Code (เป็น Code ใน Crystal Report 2008) Function ( NumberVar Amount); ( Local StringVar TextOut:=""; Local StringVar Array N := ["","หนึ่ง","สอง","สาม","สี่",...

การ Remove Event Log Group ใน Windows

กรณีที่ท่าน ได้ Install Software แล้ว Software นั้นได้มีการ เพิ่ม Event Log Group เข้ามาในระบบนั้น เดิม จะมี 3 Group คือ 1. Application Log, 2. System Log, 3. Security Log, กรณี มี Custom Log Group ก็จะมีรายการ ที่ 4 ,5,6 ขึ้นมา กรณีที่ท่าน Remove Software แล้ว บางครั้ง ตัว Uninstall ไม่ได้ Remove Event Log Group ออกให้ด้วย ท่านต้องเอาออกเอง โดยใช้ Regedit ครับ ให้ เปิด Regedit โดย เปิด เมนู Start>Run แล้วพิมพ์ คำว่า regedit แล้วกด Enter จากนั้นให้ Browse ไปที่ Key HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog แล้วก็ ให้ Remove Key ภายใต้ Group นั้นออก ก็เสร็จเรียบร้อย

สร้าง Key สำหรับ Sign Project ในการ Deploy Click Once ให้มีอายุมากกว่า 1 ปี

รูปภาพ
สร้าง Key สำหรับ Sign Project ในการ Deploy Click Once ให้มีอายุมากกว่า 1 ปี ท่านที่ใช้งาน Visual Studio 2008 คงเคยใช้ การ Deploy ด้วย Click Once มาแล้ว และ สำหรับท่านที่ มีการ Sign the ClickOnce manifests ก็อาจจะเคยใช้ Test Certificate มาแล้ว และคงเคยเจอปัญหา เมื่อ Certificate หมดอายุ แล้ว User ไม่สามารถใช้ Application ที่เรียกใช้ ผ่าน URL ของ ClickOnce ได้มาแล้ว วิธีการแก้ปัญหา ที่ผมเจอ คือ 1. ทำการ Update Certificate ตัวเดิม ให้มี วันที่ Expire นานขึ้น ผมทำการทดสอบแล้่วปรากฎ ว่ายาก มาก และ ไม่ work 2. ทำการ สร้าง Key ใหม่ ที่มี วันที่ Expire นานขึ้น ผมทำการทดสอบแล้่ว วิธีการ ไม่ยาก แต่ขั้นตอนเยอะ หน่อย แต่ work ครับ และ ผมจะกล่าวถึงวิธีที่ สองกันนะครับ ซึ่งวิธีที่ 2 นั้น ท่านต้องทำการ Update Client ที่ต้องใช้ โปรแกรม เป็น .NET Framework 2 SP1 ก่อนนะครับ ถึงจะทำการ Sign manifests ได้ เพราะว่า ไม่ฉะนั้น ท่านจะต้อง UnInstall Application ออกแบบ Manual แล้ว ถึงจะทำการ Deploy Application ไปได้ วิธีการ สร้าง key สำหรับ ใช้ Sign manifest ทำได้ดังนี้ 1. ใช้ tools ที่ชื่อว่า makecert หาได้จาก ...

ฺฺBuild Install by Click One

เนื่องจากผมใช้ ClickOne ในการ Deploy Program เพราะว่ามัน ง่ายดี แค่ Click ๆ ไม่กี่ Click ก็สามารถ Deploy โปรแกรมได้แล้ว แถมยัง มีการ Check Update Version ด้วยว่า โปรแกรม เป็น Version ปัจจุบันหรือไม่ ถ้าไม่ ก็สามารถ Update Program เป็น Version ปัจจุบันได้ แต่ปัญหาที่เจอ คือ เมื่อ Deploy ไปที่ Server1 (ศูนย์หลัก ซึ่งอยู่ที่ site 1) แล้ว เวลาไป Install ที่ Site สำรอง ถึงแม้ว่า จะนำไฟล์ไปวางไว้ที่ Server2 (site สำรอง) แล้วเรียก มัน ก็ยัง ไป point อยู่ ที่ Server1 เหมือนเดิม เข้าใจว่าใน Configuration ของ ClickOne จะระบุไว้อย่างนั้น ผมเลยแก้ปัญหาด้วย วิธี สร้างเป็น Setup Project ขึ้นมา จะได้ file setup ที่ นำไปวาง ไว้ที่ site ไหนก็ได้ ก็สามารถ Install ได้ แต่ก็มีข้อเสียคือ ไม่สามารถ ทำ Auto Update ได้ ง่ายๆ เหมือน ClickOne

divide by zero fixed บน crystal report

่ในบางครั้ง ที่ต้องเขียน fomular field บน crystal report ผมว่าก็มีหลายครั้ง หรือโดยส่วนมาก เราก็ต้องใช้มัน และ หนีไม่พ้นต้องใช้สูตร คณิตศาตร์ พื้นๆ นี้แหละ เช่น บวก ลบ คูณ หาร ในวันนี้ผม จะมาเตือนให้ ท่าน programmer ทั้งหลาย อย่าลืม ดัก error divide by zero ด้วย นะครับ มีหลายครั้งที่ทดสอบรายงานออกมาแล้ว ใช้งานได้ แต่พอไปเจอ งานจริง กลับทำงานไม่ได้ เพราะว่าข้อมูล ตัวหาร เป็น ศูนย์ ก็เลย เจอ error ซะงั้น ทางที่ดี ถ้าเรารู้ว่า มีสูตรหาร ใน fomular field ก็แนะนำให้มีการดัก devide by zero ทุกครั้งนะครับ ยกเว้นแต่ว่า คุณจะทราบดีว่าข้อมูลตัวหารในสูตร จะไม่มีทางเป็น ศูนย์ ได้เลย ตัวอย่างสูตรที่พบบ่อยๆ เช่น percent of total = value / sum(value,date) กรณีีนี้ โอกาสที่ total จะเป็น zero นั้น ก็ เป็นไปได้ครับ ถ้า value เป็นทั้ง บวกและลบ แต่ถ้าต้องการ fixed ก็ ดักค่าตัวหารก่อน เช่น if (sum(value,date) 0) then percent of total = value/sum(value,date) else percent of total = "divide by zero" เป็นต้น

Crystal Report หาจำนวนวันในเดือนนั้น อย่างไร

เบื้องต้น เป็นแบบนี้ครับ ใช้ function Datediff ครับ DateDiff ( intervalType , startDateTime , endDateTime ) ใส่ intervalType เป็น d (หมายถึง วัน) startDateTime เป็น วันที่ 1 ของเดือนนี้ endDateTime เป็น วันที่ 1 ของเดือนหน้า ส่วนวิธี ได้มาซึ่ง วันที่ 1 เดือนนี้ใช้ Function DateSerial ( year , month , day ) และ DateAdd ( intervalType , nIntervals , startDateTime ) ช่วย ใช้ IntervalType = m คือเดือน เช่น วันที่ 1 เดือนนี้ d1= DateSerial (YEAR(CurrentDate),MONTH(CurrentDate ),1) วันที่ 1 เดือนหน้า d2= DateAdd (m,1,d1) ส่วน จำนวนวัน dcount= DateDiff (d,d1,d2) แค่นี้ครับ

Can not Start Application

รูปภาพ
กรณีที่ท่านใช้ ClickOne ในการ Deploy Application แล้ว เมื่อ เปิดโปรแกรม เจอ Dialog บอกว่า Can not Start Application. Contact Application Vendor ตามรูปคือ โดยมี รายละเอียด จากการกดปุ่ม Detials... คล้ายๆ กันนี้คือ PLATFORM VERSION INFO Windows : 5.1.2600.196608 (Win32NT) Common Language Runtime : 2.0.50727.1433 System.Deployment.dll : 2.0.50727.1433 (REDBITS.050727-1400) mscorwks.dll : 2.0.50727.1433 (REDBITS.050727-1400) dfdll.dll : 2.0.50727.1433 (REDBITS.050727-1400) dfshim.dll : 2.0.50727.1433 (REDBITS.050727-1400) SOURCES Deployment url : file:///C:/Documents%20and%20Settings/user1/Desktop/App.appref-ms Deployment Provider url : file://Server/App/Install/App.application ERROR SUMMARY Below is a summary of the errors, details of these errors are listed later in the log. * Activation of C:\Documents and Settings\user1\Desktop\App.appref-ms resulted in exception. Follow...

เรื่องของ อาการภูมิแพ้

ผมเป็นคนหนึ่ง ที่เป็นภูมิแพ้, แพ้อากาศ เวลาอากาศ เปลี่ยนแปลงอย่างรวดเร็ว หรือ เราไปอาศัยอยู่ บริเวณ ที่มี ฝุ่น หรือ ควัน หรือละอองในอากาศ จำนวนมาก ก็ทำให้อาการ กำเริด ขึ้นมาทันที อาการคือ มี น้ำมูกใสๆ ไหล ออกมา เรื่อยๆ รวมถึงมีอาการ ไอ หรือ จาม ได้ แสบจมูก ไปจนถึง ปวดบริเวณ หัวคิ้ว ขมับ ไปจนถึง ปวดหัว ได้ ถ้าปล่อยไว้นาน ก็จะทำให้เกิดอาการ จมูกอักเสบ หรือ ไซนัสอักเสบได้ ไปหาหมอก็ให้ยา แก้แพ้มา และ ยาพ่นจมูก แต่ เท่าที่เคยใช้กับตัวเองมาคือ ใช้ยา Zyrtec (กล่องสีเหลือง) เป็นยาเม็ด ทานวันละ 1 เม็ดเมื่อมีอาการ ทานแล้ว จะลด อาการ ได้เกือบทันทีที่ยาออกฤทธิ์ คือ พอทานแล้ว ก่อนทานมีน้ำมูกไหล หลังทาน น้ำมูกจะหยุดไหลทันที และอาการแพ้อื่นๆ ก็หมดไปด้วย เอาเป็นว่าผมต้องซื้อยานี้ ติดตัวไว้เลย พอมี อาการ ก็ หยิบมา ทานได้ทันทีครับ เป็นอะไรที่อยากแนะนำครับ ยาของเค้าดีจริงๆ ถึงแม้จะแพงไปหน่อยครับ แต่ก็คุ้มครับ สำหรับผม

ปัญหาเด็ก กลืน ดินน้ำมัน

ท่านเคยเจอปัญหา นี้บ้างไหม เด็ก เล็ก อายุ 3-5 ขวบ กลืนดินน้ำมัน ปัญหาคือ ในดินน้ำมัน นั้น ล้วนประกอบไปด้วยสารเคมี ซึ่งเป็นพิษต่อร่างกายได้ โดย ส่วนประกอบของดินน้ำมัน (อย่างง่าย)ได้แก่ 1. ดินสอพอง 240 กรัม 2. น้ำมันเครื่องเบอร์ 50 (ยังไม่ได้ใช้) จำนวน 30 ลูกบาศก์เซนติเมตร 3. พาราฟินแข็ง 40 กรัม 4. สีผง (สีน้ำมันผลจะดีที่สุด) 5. ตะเกียงแอลกอฮอล์ 6. บิกเกอร์ 7. ขันน้ำ วิธีทำ 1. บดดินสอพองกับสีผงให้ละเอียด คลุกเคล้าให้เข้ากัน ร่อนเอาผงละเอียดใส่ในขัน 2. เอาพารฟินใส่บิกเกอร์ ให้ความร้อนจนหลอดละลาย ยกวางบนพื้น 3. เทน้ำมันเครื่องลงในพาราฟินเหลว คนให้เข้ากัน แล้วเทลงในชันที่มีดินสอพองผสมสี ที่เตรียมไว้คนให้เข้ากัน แล้วใช้มือนวดจนผสมกันทั้งก้อน 4. ตั้งทิ้งไว้ 1 คืน วันรุ่งขึ้นนวดต่ออีกครั้ง ท่านสังเกตส่วนประกอบแล้ว โดยเฉพาะอย่างยิ่ง น้ำมันเครื่อง หรือ สี นั้น ล้วน เป็นอันตรายต่อร่างกาย ทั้งนั้น ท่านคงเคยได้ยินข่าวเด็ก กินน้ำมันเครื่องแล้ว ทำให้พัฒนาการของสมอง และร่างกายลดลง นะครับและการกลืนกินเจ้าดินน้ำมันเข้าไป โดยไม่รู้เรื่อง หรือ ทำไปด้วยด้อยประสบการณ์นั้น ยังอาจทำให้เจ้าดินน้ำมัน ไปอุดตันภา...

แก้ปัญหา Rubik 3 x 3

ขอเบรค เรื่อง programming ไว้สักพักนะครับ ขอ เป็นเรื่องงานอดิเรกบ้าง ว่างๆ ก็ เอา rubic มา นั่งเล่น ดูครับ ก็คลายเครียดไปอย่างครับ จากตัวอย่างที่เล่น จะเป็นสูตร ยอดนิยมครับ คือสูตรง่าย แต่ก็เล่นเรื่อยๆ ลองฝึกฝีมือดู ยังไงก็เกิน 3 นาทีครับ ฝีมืออย่างผม ถือว่า ยังเริ่มต้นอยู่ครับ พยายามฝึกให้เร็วกว่านี้ อีกครับ ใครที่ไม่เคยเล่นก็ลอง ไปซื้อเอามาเล่นดูครับ ส่วนใหญ่ ราคาเริ่มต้น ไม่ถึงร้อยบาทครับแถมสูตรให้ด้วย แต่ถ้าอยากเป็นเร็ว ก็ไปซื้อหนังสือมาอ่านครับ อ่านแล้วก็แก้ได้ แต่ แก้ได้เร็วนั้น ต้องอาศัยการฝึกฝนครับ

Sub Version บน Visual Studio 2008

Sub Version คือ อะไร Subversion เป็น Tools ในการใช้เก็บ Source Code ในการพัฒนา และมีระบบควบคุม การเปลี่ยนแปลง หรือ Version Control ให้กับ Code จะมีประโยชน์มากในการ พัฒนา ร่วมกัน หรือแม้แต่พัฒนาคนเดียวก็มีประโยชน์ อย่างน้อยก็ ช่วยบันทึก การเปลี่ยนแปลงของ Code ได้ว่า มีการแก้ไข หรือทำอะไรไปบ้างในแต่ละ Version หลักการคือ มีการเก็บข้อมูลการเปลี่ยนแปลงไว้ใน ฐานข้อมูล เรียกว่า Repositary หรือ อธิบายได้ง่ายๆ เหมือนกับ สินค้า นำสินค้าต้นฉบับมาเก็บไว้้ที่คลัง (Original Code) เมื่อนักพัฒนาต้องการ พัฒนาเพิ่ม ก็มีการมาเบิกสินค้าออกไป เรียกว่า CheckOut และระหว่างที่พัฒนา อาจจะมี Code หรือไฟล์ เพิ่มขึ้นมาจากต้นฉบับ ก็สามารถ เพิ่มเข้าไปที่ Repositary ได้ เรียกว่า Add เมื่อนักพัฒนา ทำการพัฒนาเสร็จแล้ว ก็ทำการ ส่งส่วนที่พัฒนาเพิ่มเติม กลับเข้าไป ที่คลังสินค้า เรียกว่า Commit หรือ เมื่อ ทำการทดสอบโปรแกรมแล้ว ปรากฎว่า ไม่ถูกต้องตามความต้องการก็สามารถยกเลิก Code ที่เขียนเพิ่มไปได้ (Undo ย้อนกลับไป แม้ว่าจะ Save แล้วก็ตาม) หรือ เรียกว่า Revert ซึ่งในการพัฒนานั้น ถือว่าเป็นประโยชน์มากๆ ทีนี้มาดูกันว...

การ save source file ไว้บน Network Visual C# 2008

รูปภาพ
ปกติ ที่ผมเคยพัฒนาโปรแกรม บน Windows ด้วย Visual C# นั้น ผมจะ Save Project File ไว้ตาม Default เสมอก็คือ My Documents\Visual Studio 2008\Projects การใช้งาน บน Local ก็ไม่มีปัญหาอะไร เพราะว่าทำงานคนเดียวอยู่ แล้ว แต่พอ project ใหญ่ๆ ต้องทำงานหลายคน จะต้อง เอา project file ไปไว้ที่ Network Drive ปัญหาที่เจอก็คือ ไม่สามารถเปิด project ได้ครับ เนื่องจากว่าติืดสิทธิ ประมาณว่า ไม่ผ่าน Security Policy ของ .NET ดังรูป ปัญหาดังกล่าวเกิดจาก Security Policy ของ .NET สิ่งที่เราต้องทำคือ บอกให้ .NET รู้ว่า ให้อนุญาติโปรแกรมของเราสามารถเรียกจาก Network Share ได้ สิ่งที่ต้องทำคือ 1. ทำการ Sign Assamblies เพื่อสร้าง รหัส Private Key ให้กับ Program โดยไปที่ Project Properties แล้วเข้าำไปที่ Signing แล้ว Check ที่ Sign the ClickOnce Manifests กรณีไม่เคยมี ก็ สร้าง โดย Click ที่ Create Test Certificate.. หรือถ้ามี Key แล้ว ก็เลือก โดย Select from Store.. (ขั้นตอนดังกล่าว ทำใน Local Drive นะครับ) เสร็จแล้ว ก็ ทำการ Save Project แล้ว นำไปวางไว้บน Network Drive ทำการ Set Permissionให้เรียบร้อย จากนั้น ก็ ใ...

เพิ่ม Speed ให้ Crystal Report 2008

รูปภาพ
เนื่องจาก ผมก็เป็นคนหนึ่งที่พัฒนา โปรแกรม บน Windows และก็ใช้ Crystal Report เนื่องจากเป็น Report Tools ที่ใช้งานค่อนข้าง ง่าย และ Powerful เลยทีเดียว บอกไว้ก่อนว่า ผมใช้ Tools ในการพัฒนาคือ Visual C# 2008 และ Crystals Report 2008 แต่สิ่งที่ ผมพบปัญหา เล็กๆ น้อยๆ คือ เวลาที่ ใช้ report object ทำการ load Report โดยใช้ Method report.Load("reportfile.rpt") จะใช้เวลานานในการ Load มากๆ เนื่องจาก ในโปรแกรมจะมี Report หลายตัว จะใช้ตัวไหน ก็ Load ตัวนั้น ยิ่ง Report มี Item ภายในมากเท่าไหร่ ยิ่งโหลดนานเท่านั้น ที่ว่าโหลดนานคือ (ประมาณ 20-30 วินาที) ซึ่งนานเกินไป ผมใช้เวลาทดสอบ แก้ปัญหาอยู่นานหลายวัน กว่าจะ เพิ่มความเร็ว ในการ Load Report ได้ โดย การ Load เร็วขึ้น เหลือประมาณ (5-10 วินาที แล้วแต่ขนาดของ LayOut และ จำนวน Item) ผมขอสรุปการแก้ปัญหา ดังนี้คือ 1. ไม่ Save Data ไว้ในไฟล์ Report ให้เก็บเฉพาะ LayOut ไว้เท่านั้น ให้เข้าไปที่เมนู File Report Option แล้ว Clear CheckBox Save Data With Report 2. Datasource ที่ส่งให้ Report ให้เป็น oledb 3. กรณีมีรูปใน Report ให้ ทำการ Resize รูปก...

สร้าง Help File ให้กับ Program

พอพัฒนาโปรแกรมเสร็จ ก็ต้องจัดทำ Document หรือ คู่มือ, Manual, ถามว่าจะทำอย่างไร ให้ Integrate เข้าไปใน Program ได้เหมือนๆ กับ Program ที่เค้าทำขายกัน เท่าที่ได้ลองทำคือ ต้องทำเป็น HTML Help (.chm) เป็น รูปแบบที่ Microsoft ได้จัดทำขึ้น โดยวิธีการ คือเราก็ทำ Document ของเรา ในรูปแบบ Word Document ก็ได้ พิมพ์ จัด content ให้เรียบร้อย แล้วก็ใช้ HTML Help Workshop (ไป Downloads มาก่อน ที่ Microsoft) http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=00535334-c8a6-452f-9aa0-d597d16580cc ทำการ Compile ผลที่ได้คือ File .chm นำมา Integrate เข้ากับ Application ของเราอีกครั้ง และที่ผมเจอ Tools ที่ถูกใจอีกตัวคือ HelpNDoc เป็น Tools ที่ค่อนข้าง Powerful เลยทีเดียวในการสร้าง Help Documents สามารถสร้าง Output เป็น .chm, html, .doc หรือ .pdf ได้เลย มีตัว Free Edition ให้ใช้ด้วยครับ (แต่มี Footer กวนใจเล็กน้อย ว่าเป็น ตัว Free) ถ้าไม่ Serios ก็ ใช้ได้ครับ http://www.helpndoc.com/ วิธีการ Integrate เข้ากับ Program ผมใช้ั IDE คือ Visual Studio 2008 ภาษาในการพัฒนาคือ C# Micosoft ...

อยากเขียน program บน iPhone

เห็น เค้าออก iPhone กันมาใช้ ก็อยากได้บ้าง แต่ว่า ก็ถือว่าแพง กว่า มือถือธรรมดา หลายเท่าอยู่ จะว่าไปก็ อยาก เขียน program บน iPhone ด้วย เห็นเค้าว่า ถ้าเขียนแล้วมีคน load ไปใช้ ก็อาจได้ ตังค์ไป กินขนม อีกด้วย แต่ว่าทำอย่างไรหว่า ถึงจะเขียน program บน iphone ได้.. เท่าที่ไปลองๆ ค้นหาวิธีดูก็มีวิธีอยู่ 2 แบบคือ 1. ซื้อเครื่อง mac 2. install mac บน pc ซึ่ง การ install ก็มี 2 วิธีด้วยกันคือ Install on partition with OSx86 Install on virtual machine เช่น vmWare หรือ pearpc ส่วน tool ที่ใช้จะเป็น XCODE และ IB(Interface Builder) ภาษาในการพัฒนา จะใช้ภาษา Objective-C หรือ C++ ก็ได้ แต่ถ้าใช้ XCODE ก็จะมี COCOA APIใช้ในการพัฒนา ส่วนวิธีการพัฒนา หรือภาษา Objective-C เป็นอย่างไรต้องไปศึกษาอีกครับ http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html เริ่มศึกษา ภาษา Objective C กัน โดยดูที่ wiki ก่อนนะครับ http://th.wikipedia.org/wiki/ภาษาอ็อบเจกทีฟ-ซี เท่าที่เห็นความแตกต่างจากภาษา C ที่เคยเขียนตอนสมัยเรียน อยู่ก็ นามสกุลไฟล์ ถ้าเป็น Obje...