I'm AI.

"ปัญญาประดิษฐ์ได้"

พอดีวันนี้ต้องลองทดสอบดูว่า PHP สามารถใช้ฐานข้อมูลของ SQL Server ได้ไม๊
ไปอ่านเจอ ว่าให้ Un Comment ในไฟล์ php.ini บรรทัด extension=php_mssql.dll ออก จากนั้น Reboot Apache
แต่ปรากฏว่ามันเกิด Error นี้ขึ้นครับ
Fatal error: Call to undefined function: mssql_connect()
ไปเปิดเจอในเว็ป เค้าให้ copy file “ntwdblib.dll” ไปใส่ไว้ใน c:\\windows\system32 ครับ เท่านี้ก็เรียบร้อย ^^

พอดีว่าง ๆ เลยหาโหลด IPhone SDK มาลองเล่น ๆ ดู เขียนไปมึน ๆ ไปก็มัน ๆ ดี
สมมุติว่า เรามี TextField(Windows เรียก TextBox) อันนึง TagId = 1
แล้วเราต้องการ Convert ไปใส่ในตัวแปล Int หรือ Float
UITextField *txtNumber = (UITextField *)[window viewWithTag:1];
float fNumber;
fNumber = [[txtNumber text] floatValue];
float nNumber;
nNumber = [[txtNumber text] intValue];
และถ้าเราอยาก Convert จาก Int/Float เป็น String ลงใน text field
txtShowF.text = [NSString stringWithFormat:@"%f", fNumber];
txtShowN.text = [NSString [...]

Javascript Syntax

วิธีใช้ charAt
charAt คือการ Access เข้าไปใน string แบบ array (string คือ array of char)
ถ้าใน C++ เราใช้แบบนี้ได้เลย
string str
str = “0123456789″;
printf(“%c”,str[0]);
แต่ถ้าเป็น Javascript ต้องใช้แบบนี้
var str;
str = “0123456789″;
print(str.charAt[0]);
วิชีการใช้ length ใช้สำหรับหาความยาว string อันนี้ใช้เหมือนภาษาอื่น คือ .length ได้เลย
การเพิ่ม method เข้าไปใน Obj ของ Javascript
จากตัวอย่างจะเป็นการ trim

String.prototype.trim = function () {
return this.replace(/^\s*/, “”).replace(/\s*$/, “”);
}

var str;
str = “123456789 [...]

Apache ไม่แสดง error

ตอนนี้ เปลี่ยน com ใหม่ ไปใช้ MAC แล้วพอดีลง MAMP (MAC,Apache,Mysql,Phpmyadmin) แล้วเขียน code แล้วไม่แสดง error
วิธีแก้ ก็ไปแก้ที่ file php.ini ตรงส่วนที่ จัดกการ การแสดง error
โดยแก้ที่ display_errors = Off เป็น display_errors = On

     วันนี้เราจะมานำเสนอวิธีการส่ง E-mail ง่าย ๆ โดยการใช้ class MailMessage และ SmtpClient 
โดยการส่งเมล์นี้จะใช้ Protocol SMTP ในการส่ง 
1.การประกาศตัวแปลของ Object MailMessage
Dim mailClient As New MailMessage 
2.การกำหนด E-mail ผู้ส่ง
 mailClient.From = New MailAddress(address Asstring)
Ex. mailClient.From =New MailAddress(“Bill_Gate@hotmail.com“) 
3.การใส่ E-mail Address ปลายทาง 
mailClient.To.Add(address Asstring)
Ex. mailClient.To.Add(“steve_job@apple.com“) 
4การใส่ Suject และ Body
mailClient.Subject = subject
mailClient.Body = body 
5.การประกาศตัวแปรของ SmtpClient
Dim sendMail As New SmtpClient(“Mail Server”, port)
“Mail Server” คือ Host SMTP ที่เราจะให้เค้าส่ง Mail ไปใช้
port Default คือ 25sendMail.Credentials [...]

วันนี้ทำงาน แล้วติดปัญหา ผมมี function นึงซึ่งใช้ในการจัดการ  Linked-List
ซึ่ง linked-list ตัวนี้ถูกประกาศเป็น global
และโปรแกรมที่ผมทำนั้น การทำงานถูกแยกเป็น thread
ดังนั้นโอกาสที่ จะมีการ access Linked-list ตัวนี้ก็มีสูง
ลูกพี่ผมก็แนะนำให้ใช้ semaphore lock โดยขณะที่ มี เธรดไหนทำอยู่ก็ให้ lock ไว้ก่อน
โดย syntax ที่ใช้มีดังนี้
#include <semaphore.h>    <—- Include
sem_t      mutex;   <— mutext variable
sem_wait(&mutex);   <—- Lock
sem_post(&mutex);  <—- Unlock
แต่ก่อนจะใช้ ต้อง Init ก่อนนะครับ
sem_init(&mutex, 0, 1);
เช่น
int editData()
{
sem_wait(&mutex);
A++;
sem_post(&mutex);
return A;
}
ข้อสำคัญคือ ต้อง Unlock ก่อนที่จะ Return นะครับ
ปล. ตอน compile ต้อง -lposix4 ด้วยนะครับ ^^

ในกรณีที่เราต้อง การ Select ข้อมูลบางอย่างอาจจะไม่ต้องการหมด เช่นต้องการ Query เบอร์โทรศัพท์ แล้วไม่ต้องการเอา 4 ตัวท้ายมา
เช่นเบอร์เป็น 086617xxxx เราก็สามารถให้ Oracle ทำให้แทนได้ (CPU เค้าแรง Ram เค้าเยอะ อิอิ)
SELECT CONCAT(SUBSTR(MOBILE_NUMBER,1,6) ,’XXXX’ ) AS MOBILE_XX FROM MOBILE
โดยในการทำ Sub String นั้นเราจะใช้ SUBSTR(Feild,Start Index,Length) ก็คล้าย กับใน C หรือ VB
และจากตัวอย่างได้ใช้ CONCAT มาเพื่อต่อ String ที่เราต้องการ CONCAT(StringA,StringB)  ^^
อ้างอิง : http://www.psoug.org/reference/string_func.html

พอดีมีงานที่ต้องเขียนเชื่อมต่อฐานข้อมูลของ SQL Server ซึ่งไปอ่าน ๆ ดูก็ง่าย ๆ (Oracle, MySQL ก็เขียนคล้ายกันมาก)
ตัวอย่างผมใช้ VB.NET เขียนนะครับ
เริ่มแรกก็ Import ก่อนเลย
Imports System.Data.SqlClient
จากนั้นก็ตามด้วย Code ตัวอย่าง อย่างง่าย ๆ
Private Sub readDataTOListView(ByVal lv As ListView)
Dim sqlServerConnect As SqlConnection
Dim sqlCommand As SqlCommand
Dim dr As SqlDataReader
sqlServerConnect = New SqlConnection(“server=localhost;uid=sa;pwd=123456;database=myDatbase”)
Try
sqlServerConnect.Open()
sqlCommand = New SqlCommand(“Select * from mytable”, sqlServerConnect)
dr = sqlCommand.ExecuteReader()
If dr.HasRows Then
While dr.Read()
With lv.Items.Add(dr.Item(“ID”).ToString())
.SubItems.Add(dr.Item(“Data1″))
.SubItems.Add(dr.Item(“Data2″))
End With
End While
End If
dr.Close()
Catch ex As Exception
MessageBox.Show(ex.ToString())
End [...]

วันนี้ผมจะมาเขียนเรื่องวิธีง่าย ๆ ที่ผมใช้ส่ง Integer ไปทาง TCP
ซึ่งการส่งข้อมูลจะต้องถูกตัดออกเป็นไบต์ ๆ  ในการส่ง
ซึ่งตัวแปล Integer (ของ CPU 32 bit) จะมีขนาด 4 ไบต์ (8 x 4 = 32)
ซึ่งวิธีการที่ผมใช้การ Shift Bit เข้ามาช่วง ซึ่งทำให้การเขียนโปแรกมนั้นง่าย CPU ทำงานน้อย (น้อยกว่าวิธีการ ลบ และ mod)
สมุติเรามีข้อมูลแบบนี้
(3)00110011 (2)00111100 (1)10000001 (0)11110000  (ค่าเท่าไหร่ไม่ต้องไปสนใจ โดยเราจะใช้ชื่อแทนว่า Data)
เวลาเราส่งก็ต้องแยกออกเป็นไบต์ ๆ ได้แบบนี้
(0)11110000
(1)10000001
(2)00111100
(3)00110011
โดยเรียงจากไบต์ต่ำมาหาไบต์สูง
ซึ่งวิธีการได้ไบต์ต่างๆ  มาดังนี้
(0)11110000 = (Data & 00000000 00000000 00000000 11111111)
(1)10000001 = (Data & 00000000 00000000 11111111 00000000) >> [...]

Thread คือ ?

Thread คืออะไร ผมก็ไม่รู้ จำได้ลาง ๆ ตอนเรียนว่า Thread เป็นการทำงานแบบขนานใน Process (เรียก Mutithread) โดย Thread นั้นสามารถใช้ resource ร่วมกันได้ (Data, File, …)
เมือก่อนตอนใน 1 process จะทำงานแค่ 1 thread เท่านั้น
ลองนึกภาพ code นี้ดู
int main()
{
char inChar;
inChar = getch();
printf(“Welcome\n”);
}
จาก code ดังกล่าวเป็นการทำงานแบบ Thread เดียว คือโปรแกรมต้องรับอินพุตจาก Keyboard ก่อนถึงจะแสดงคำว่า Welcome ได้
หรือลองนึกภาพห้องเรียนที่กำลังจะเลิกเรียน แล้วคุณครูให้เด็กชาย A มาเขียนสูตรคูณแม่ 2 กับแม่ 3 ลงบนกระดาน โดยความสามารถของเด็กชาย A นั้นสามารถเขียนสูตรคูณได้ 1 นาที / 1 บรรทัด [...]

  

Recent Entries

    Recent Comments

      Most Commented