2008-02-10

The main goal of this site is to provide clear, accurate and easy to understand information regarding

Welcome to the longest running, Windows site on the Internet.
You might want to read a short page About this Site and its history.
I do appreciate any support to help defray the monthly costs
If you are mentioning this site in a publication, or found it through one, I would appreciate hearing about it.
Computers are fun, but what I really like to do is .....
For those of you that might want to copy the contents of this site:
It has taken me years to accumulate all this information.
Please take the time to create your own, or...
If you feel this information is valuable, simply link back to the source. This way people get the regular updates
This site is best viewed with at least 1024x768 resolution and 16-bit color

2008-02-03

Artificial Intelligence

Artificial Intelligence lecture note


· ประกาศคะแนนสอบกลางภาค 2110477 (AI-II)
· ประกาศคะแนนสอบกลางภาค 2110654 (AI)

· 2110477 (AI 2) Final Examination:
Place: Eng. 4, 19-01, Time: 9.00-12.00 (28 September, 2007) !!!
scope—from slide no.1 to slide no.4

· 2110654 (AI) Final Examination:
Place: Eng. 4, 19-01, Time: 9.00-12.00 (27 September, 2007) !!!
scope—from slide no.1 to slide no.4


The slides used in the course:
1st-3rd weeks
slide no.1: Introduction, Problem-Problem Space-Search slide no 1
slide no.2: Tabu Search slide no 2
4th week
slide no.3: Predicate Calculus slide no 3
5th week
slide no.4: Introduction to Prolog slide no 4 (SWI-Prolog's Web Site)
6th-7th weeks
slide no.5: Natural Language Processing slide no 5
8th weeks
Midterm Examination (scope—from slide no.1 to slide no.4)
9th week
slide no.6: Genetic Algorithm slide no 6
10th week
slide no.7: Rote Learning, Learning by Analyzing Differences, Version Spaces slide no 7 (A Prolog Implementation of Version Space)
11th week
slide no.8: Decision-Tree Learning, Explanation-Based Learning slide no 8(A Decision-Tree Software: See 5’s Web Site, download CUMiner and .NET Framework) (A Prolog Implementation of EBL)
12th week
slide no.9: Inductive Logic Programming slide no 9
13th week
slide no.10: Artificial Neural Networks slide no 10 (NeuroSolutions’ Web Site)
14th week
slide no.11: Bayesian Learning slide no 11
15th week
Other topics : slide no.12: Support Vector Machines slide no 12
16th week
Final examination (scope—from slide no.6 to slide no.12)


The lecture notes:
Lecture note no.1: Introduction to Artificial Intelligence lecture note no 1
Lecture note no.2: Problem, Problem Space and Search lecture note no 2
Lecture note no.3: Predicate Logic lecture note no 3
Lecture note no.4: Prolog lecture note no 4
Lecture note no.5: Genetic Algorithm lecture note no 5
Lecture note no.6: Rote Learning lecture note no 6
Lecture note no.7: Learning by Analyzing Differences lecture note no 7
Lecture note no.8: Version Space lecture note no 8
Lecture note no.9: Decision Tree Learning lecture note no 9
Lecture note no.10: Explanation-Based Learning lecture note no 10
Lecture note no.11: Neural Networks lecture note no 11
Lecture note no.12: Bayesian Learning lecture note no 12

If you have comments, suggestions, etc., give them to me at http://www.cp.eng.chula.ac.th/course/forum/?cat=2110477
Assignment1: data.dat


References:
E.Rich & K.Knight, Artificial Intelligence, Second Edition, McGraw-Hill
S. Russell & P.Norvig, Artificial Intelligence: A Modern Approach, Second Edition, Prentice Hall.

MIT Computer Science and Artificial Intelligence Laboratory

The Nokia-MIT program envisions a future where small hand-held devices such as mobile phones will become part of an "ecosystem" of information, services, peripherals, sensors, and other devices. This week CSAIL's Nokia-MIT program hosted a meeting with over one hundred technologists in attendance to discuss the progress of current research underway. Nokia-MIT research projects are exploring new user interfaces that incorporate speech and other modalities, mobile computing platforms, software architectures, and ways to manage information including the semantic web. The focus of this week's meeting was to emphasize technologies for the creation of scalable consumer internet services, which is now a major part of Nokia's strategy.
Tuesday February 5th:Robotics Seminar Series Spring 2008: From Biologically Inspired Robots to Reality: Snake and Quadruped Walking
Wednesday February 6th: Robotics Seminar Series Spring 2008:
Real-Time Adaptive Signal Processing
Top: Nokia-MIT Program meetingBottom Left: Prof. Arvind, CSAIL Bottom Right: Dr. Bob Iannucci, NokiaPhotos by Jason Dorfman

2008-02-01

OstroSoft Internet Tools

OstroSoft Internet Tools is integrated set of network information utilities. It is intended for use by network, domain and systems administrators, network security professionals, Internet users and everyone who wants to know more about network and Internet.
It gives you such vital information as:
which computers on domain are running specified service - for example: how many newsservers are available on domain (Domain Scanner)
what network services are running on specified computer (remote or local) - for example: Web server, telnet, mailserver, FTP, finger, etc. (Port Scanner)
let you test if remote host is running, accessible from your system, and how long it takes to reach it (Ping)
shows you the path TCP packet takes from your system to remote host (Traceroute)
shows you the information about active connections on you computer (Netstat)
resolves host names to IP addresses and vice versa (Host Resolver - dns)
returns contact information (address, phone, fax, administrator name, DNS servers) for specified network (Network Info)
shows network-related information (IP address, host name, version of Winsock, etc.) about your computer (Local Host Info) It helps to find hidden resources on network. It reveals security holes and helps to fix it. It is fast, reliable and user-friendly. And it is getting better with every release. OstroSoft Internet Tools is not intended for hacking purposes, malicious attacks on networks and systems connected to the network, and other unlawful actions.

MP3 Normalizer

Description: standardizes MP3 ID tags and file names, converts Cyrillic letters to Latin
Minimum requirements: VB4
Download: source code
Screenshot:


Project: Standard EXE
Controls: fm (Frame), cmdDown (CommandButton), cmdUp (CommandButton), cmdFix (CommandButton), cmdApply (CommandButton), txtTitle (TextBox), txtArtist (TextBox), txtFile (TextBox), lbl (Label), lbl (Label), lbl (Label), File1 (FileListBox), Dir1 (DirListBox), Drive1 (DriveListBox)
Code:
Option Explicit

Dim sDir As String

Private Sub cmdApply_Click()
If Len(txtArtist) > 30 Then
If MsgBox("Artist tag is longer than 30 characters" & vbCrLf & _
" Would you like to truncate it?", vbYesNo, "Warning") = vbYes Then
txtArtist = Trim(Left(txtArtist, 27)) & "..."
Else
MsgBox "Unable to apply changes", , "Error"
End If
Exit Sub
End If
If Len(txtTitle) > 30 Then
If MsgBox("Title tag is longer than 30 characters" & vbCrLf & _
" Would you like to truncate it?", vbYesNo, "Warning") = vbYes Then
txtTitle = Trim(Left(txtTitle, 27)) & "..."
Else
MsgBox "Unable to apply changes", , "Error"
End If
Exit Sub
End If
If Len(txtFile) > 255 Then
If MsgBox("File name is longer than 255 characters" & vbCrLf & _
" Would you like to truncate it?", vbYesNo, "Warning") = vbYes Then
txtFile = Trim(Left(txtFile, 255))
Else
MsgBox "Unable to apply changes", , "Error"
End If
Exit Sub
End If
If InStr(txtFile, "*") > 0 Or InStr(txtFile, "?") > 0 Then
MsgBox "Special characters from file name will be removed", , "Warning"
txtFile = Replace(txtFile, "*", "")
txtFile = Replace(txtFile, "?", "")
Exit Sub
End If
Me.MousePointer = vbHourglass
If Dir(File1.Path & "\new", vbDirectory) = "" Then MkDir File1.Path & "\new"
Name File1.Path & "\" & File1.List(File1.ListIndex) As File1.Path & "\new\" & txtFile
SetTag File1.Path & "\new\" & txtFile, txtTitle, txtArtist
File1.Refresh
txtFile = "": txtTitle = "": txtArtist = ""
If File1.ListCount > 0 Then File1.ListIndex = 0
Me.MousePointer = vbDefault
End Sub

Private Sub cmdDown_Click()
If InStr(txtFile, "-") <> 0 Then
txtArtist = Left(txtFile, InStr(txtFile, "-") - 1)
txtArtist = Replace(txtArtist, "_", " ")
txtArtist = Capitalize(txtArtist)
End If
txtTitle = Mid(txtFile, InStr(txtFile, "-") + 1)
txtTitle = Left(txtTitle, Len(txtTitle) - 4)
txtTitle = Replace(txtTitle, "_", " ")
txtTitle = Capitalize(txtTitle)
End Sub

Private Sub cmdFix_Click()
txtFile = Replace(txtFile, " ", "_")
txtFile = Replace(txtFile, "_-_", "-")
txtFile = Replace(txtFile, "(", "")
txtFile = Replace(txtFile, ")", "")
End Sub

Private Sub cmdUp_Click()
txtFile = txtArtist & "-" & txtTitle & ".mp3"
txtFile = Replace(txtFile, " ", "_")
End Sub

Private Sub Dir1_Change()
File1.Path = Dir1.Path
If File1.ListCount > 0 Then File1.ListIndex = 0
End Sub

Private Sub Drive1_Change()
Dim sDrive As String
sDrive = Drive1.Drive
If InStr(sDrive, "[") <> 0 Then sDrive = Trim(Left(sDrive, InStr(sDrive, "[") - 1))
sDrive = sDrive & "\"
Dir1.Path = sDrive
End Sub

Private Sub Form_Load()
sDir = GetSetting("mp3_norm", "StartUp", "Dir", "")
If Dir(sDir, vbDirectory) <> "" And Dir(sDir, vbDirectory) <> "." Then
Drive1.Drive = Left(sDir, InStr(sDir, ":") - 1)
Dir1.Path = sDir
End If
End Sub

Private Sub File1_Click()
Dim sFile As String
sFile = File1.Path & "\" & File1.List(File1.ListIndex)
Dim sArtist As String
Dim sTitle As String

txtFile = File1.List(File1.ListIndex)
txtTitle = ""
txtArtist = ""
If GetTag(sFile, sTitle, sArtist) Then
txtTitle = Capitalize(sTitle)
txtArtist = Capitalize(sArtist)
End If
End Sub

Private Function GetTag(ByVal sFile As String, sTitle As String, sArtist As String) As Boolean
Dim b As Byte
Dim l As Long
Dim s As String

l = FileLen(sFile) - 1
Open sFile For Binary Access Read As 1
While FileLen(sFile) - l < 128
l = l - 1
Get #1, l, b
s = Chr(b) & s
Wend
Close #1
If InStr(s, "TAG") <> 0 Then
s = Mid(s, InStr(s, "TAG") + 3)
For l = 1 To 30
sTitle = sTitle & RusLat(Mid(s, l, 1))
Next
For l = 31 To 60
sArtist = sArtist & RusLat(Mid(s, l, 1))
Next
sTitle = Trim(sTitle)
sArtist = Trim(sArtist)
GetTag = True
Else
GetTag = False
End If
End Function

Private Function SetTag(ByVal sFile As String, sTitle As String, sArtist As String) As Boolean
Dim b As Byte
Dim l As Long
Dim lPos As Long
Dim s As String
Dim i As Integer

l = FileLen(sFile)
Open sFile For Binary Access Read Write As 1
While FileLen(sFile) - l < 128
Get #1, l, b
s = Chr(b) & s
l = l - 1
Wend
If InStr(s, "TAG") <> 0 Then
s = Left(s, InStr(s, "TAG") - 1)
l = FileLen(sFile) - 127 + Len(s)
Else
s = ""
l = FileLen(sFile) - 1
End If
s = s & "TAG" & txtTitle & Space(30 - Len(txtTitle)) & txtArtist & Space(30 - Len(txtArtist)) & Space(64)
For lPos = l To l + Len(s) - 1
i = i + 1
Put #1, lPos, Asc(Mid(s, i, 1))
Next
Close #1
End Function

Private Function Capitalize(ByVal s As String) As String
Dim i As Integer

s = UCase(Mid(s, 1, 1)) & LCase(Mid(s, 2))
For i = 2 To Len(s)
If Mid(s, i, 1) = " " Or Mid(s, i, 1) = "." Or Mid(s, i, 1) = "," Then
If i <> Len(s) Then s = Left(s, i) & UCase(Mid(s, i + 1, 1)) & Mid(s, i + 2)
End If
Next
Capitalize = s
End Function

Private Function RusLat(ByVal s As String) As String
Select Case Asc(s)
'lower case
Case &HB8: RusLat = "yo"
Case &HE9: RusLat = "y"
Case &HF6: RusLat = "ts"
Case &HF3: RusLat = "u"
Case &HEA: RusLat = "k"
Case &HE5: RusLat = "e"
Case &HED: RusLat = "n"
Case &HE3: RusLat = "g"
Case &HF8: RusLat = "sh"
Case &HF9: RusLat = "sch"
Case &HE7: RusLat = "z"
Case &HF5: RusLat = "kh"
Case &HFA: RusLat = "y"
Case &HF4: RusLat = "f"
Case &HFB: RusLat = "i"
Case &HE2: RusLat = "v"
Case &HE0: RusLat = "a"
Case &HEF: RusLat = "p"
Case &HF0: RusLat = "r"
Case &HEE: RusLat = "o"
Case &HEB: RusLat = "l"
Case &HE4: RusLat = "d"
Case &HE6: RusLat = "zh"
Case &HFD: RusLat = "e"
Case &HFF: RusLat = "ya"
Case &HF7: RusLat = "ch"
Case &HF1: RusLat = "s"
Case &HEC: RusLat = "m"
Case &HE8: RusLat = "i"
Case &HF2: RusLat = "t"
Case &HFC: RusLat = "'"
Case &HE1: RusLat = "b"
Case &HFE: RusLat = "yu"
'upper case
Case &H98: RusLat = "Yo"
Case &HE9: RusLat = "Y"
Case &HD6: RusLat = "Ts"
Case &HD3: RusLat = "U"
Case &HCA: RusLat = "K"
Case &HC5: RusLat = "E"
Case &HCD: RusLat = "N"
Case &HC3: RusLat = "G"
Case &HD8: RusLat = "Sh"
Case &HD9: RusLat = "Sch"
Case &HC7: RusLat = "Z"
Case &HD5: RusLat = "Kh"
Case &HDA: RusLat = "Y"
Case &HD4: RusLat = "F"
Case &HDB: RusLat = "I"
Case &HC2: RusLat = "V"
Case &HC0: RusLat = "A"
Case &HCF: RusLat = "P"
Case &HD0: RusLat = "R"
Case &HCE: RusLat = "O"
Case &HCB: RusLat = "L"
Case &HC4: RusLat = "D"
Case &HC6: RusLat = "Zh"
Case &HDD: RusLat = "E"
Case &HDF: RusLat = "Ya"
Case &HD7: RusLat = "Ch"
Case &HD1: RusLat = "S"
Case &HCC: RusLat = "M"
Case &HC8: RusLat = "I"
Case &HD2: RusLat = "T"
Case &HDC: RusLat = "'"
Case &HC1: RusLat = "B"
Case &HDE: RusLat = "Yu"
Case Else: RusLat = s
End Select
End Function

Private Sub Form_Unload(Cancel As Integer)
SaveSetting "mp3_norm", "StartUp", "Dir", File1.Path
End Sub