Macromedia Dreamweaver v8.0

Người đăng: vjnhhoa on Thứ Hai, 21 tháng 2, 2011


Dreamweaver 8 is the industry-leading web development tool, enabling users to efficiently design, develop and maintain standards-based websites and applications.With Dreamweaver 8, web developers go from start to finish, creating and maintaining basic websites to advanced applications that support best practices and the latest technologies.









More about

Internet Download Manager v6.05 Build 2

Người đăng: vjnhhoa on Chủ Nhật, 20 tháng 2, 2011


Internet Download Manager is a tool for increasing download speeds by up to 5 times, and for resuming, scheduling, and organizing downloads. The program will resume unfinished downloads due to network problems, or unexpected power outages. The program features a full-fledged site grabber that downloads files that are specified with filters, for example, all pictures from a Web site, different parts of Web sites, or complete Web sites for offline browsing. The program supports HTTP, HTTPS, FTP and MMS protocols, and has an adaptive download accelerator for MP3 audio, FLV and MPEG video files. The program also features Download Video and Audio Panels for Internet Exporer, Chrome, Opera, Safari, Firefox and other Mozilla based browsers that appears on top of a web-player and can be used to download flash videos from sites like YouTube, MySpaceTV, Google Videos.

What's new in this version:
Version 6.05 build 2 improves recognition of audio and video streams in web players, improves download resuming when a download link has expired, improves processing of https protocol, and fixes all known bugs.










More about

Adobe Photoshop CS5

Người đăng: vjnhhoa


Adobe Photoshop CS5 software redefines digital imaging with powerful new photography tools and breakthrough capabilities for complex image selections, realistic painting, and intelligent retouching. Enjoy cross-platform 64-bit support and a wide range of workflow enhancements.

Refine your photographs--Achieve superior results in fewer steps when you remove noise, add grain, create vignettes, correct lens distortions, sharpen, and create HDR images. And enjoy better-than-ever raw file conversion. See more features for photography. Maximize creative impact--Explore fresh design possibilities with powerful new tools. Paint naturally and realistically with on-canvas color blending and textured brush strokes. Warp or stretch graphics, text, or image elements to create unique looks. Design with precision--Get exactly the look you want, more quickly than ever before. Easily select intricate image content, such as hair, for refinements, compositing, or placing in layout. Remove an image element and see the space fill in almost magically.


DOWNLOAD




More about

Xuất dữ liệu từ Foxpro sang Excel và chuyển mã Unicode

Người đăng: vjnhhoa on Thứ Bảy, 19 tháng 2, 2011

Bài viết sau đây chúng tôi xin chia sẻ với bạn đọc các bước xuất dữ liệu từ Foxpro sang Excel và chuyển mã Unicode mời bạn đọc tham khảo
1. Copy các record dữ liệu từ file *.dbf sang 1 worksheet Excel. File *.dbf là 1 bảng (table) dữ liệu, worksheet Excel cũng là 1 bảng dữ liệu. Do đó việc chuyển thông tin từ file *.dbf sang worksheet Excel là hoạt động copy dữ liệu từ table này sang table khác. Bạn có thể lập trình dùng các đối tượng ADO để thực hiện hoạt động này. Cách đơn giản nhất là dùng trực tiếp Excel như sau: chạy Excel, chọn menu File.Open để mở file *.dbf và hiển thị lên 1 worksheet Excel. Sau đó, chọn menu File.Save As để lưu lại theo định dạng *.xls.

2. Chuyển mã các chuỗi văn bản trong bảng dữ liệu từ bảng mã này sang bảng mã khác (cụ thể là từ VNI 1 byte sang Unicode). Bạn có thể dùng các ứng dụng chuyển mã tiếng Việt sẵn có trên thị trường để chuyển mã tiếng Việt trực tiếp trong worksheet Excel.

Lưu ý, do bảng mã tiếng Việt VNI-DOS (và một số bảng mã tiếng Việt cũ khác) có dùng một số mã ký tự điều khiển làm ký tự tiếng Việt nên một số ứng dụng bị xử lý sai. Do đó để giải quyết tổng quát và triệt để vấn đề chuyển mã tiếng Việt, chúng tôi có viết 1 đối tượng COM cung cấp các hàm chức năng để chuyển mã tiếng Việt từ bất kỳ bảng mã nào sang một bảng mã khác. Bạn có thể liên hệ với tòa soạn để copy đối tượng này (file bktrans.dll) về cài vào máy và sử dụng. Qui trình cài đặt đối tượng COM vào máy như sau:

- Copy file bktrans.dll vào thư mục thích hợp (thí dụ c:MyCOM).

- Tạo icon shortcut trên màn hình desktop của trình đăng ký components bằng cách ấn phải chuột trên màn hình desktop, chọn option New.Shortcut, duyệt và chọn file c:windowssystem32regsvr32.exe để tạo icon shortcut cho nó.

- Chạy tiện ích duyệt hệ thống file, tìm và hiển thị nội dung thư mục c:MyCOM, thay đổi kích thước/dời vị trí cửa sổ hiển thị thư mục sao cho thấy được icon shortcut của trình đăng ký component, chọn file bktrans.dll, drag nó vào icon shortcut của trình đăng ký để đăng ký nó vào Windows.

- Sau khi đã đăng ký thành công, bạn có thể dùng bất kỳ môi trường lập trình nào (VB, VC++,...) để lập trình ứng dụng và dùng đối tượng Bktrans vừa đăng ký y như dùng các đối tượng COM khác.

Sau đây chúng tôi xin trình bày qui trình điển hình để xây dựng 1 ứng dụng bằng VB 6.0 đọc bảng dữ liệu từ file *.dbf, chuyển mã tiếng Việt từ mã VNI-DOS sang mã Unicode cho bất kỳ field chuỗi nào rồi ghi kết quả lên 1 worksheet Excel:

1. Chạy VB 6.0, tạo Project mới thuộc loại "Standard EXE" (loại Project mặc định có 1 Form giao diện rỗng ban đầu).

2. Chọn menu Project.References để hiển thị cửa sổ References. Duyệt tìm và chọn mục BkTrans 1.0 Type Library để "add" thành phần COM phục vụ chuyển mã tiếng Việt vào Project. Tương tự, duyệt tìm và chọn mục Microsoft ActiveX Data Objects 2.x Library để "add" thành phần COM phục vụ truy xuất database vào Project.

3. Chọn menu Project.Components để hiển thị cửa sổ Components. Duyệt tìm và chọn mục Microsoft Common Dialog Control 6.0 để "add" điều khiển phục vụ duyệt hệ thống file vào Project.

4. Thiết kế Form ứng dụng theo hình sau, gồm có 5 label, 3 textbox, 2 combobox, 3 button và 1 CommonDialog:

Đặt tên cho 3 textbox là txtDBFFile, txtExcelFile, txtWorksheet, tên cho 3 button là btnDBFFile, btnExcelFile, btnStart, tên cho 2 combobox là cbSourceCode, cbDestCode, tên cho CommonDialog là FileDialog.

5. Ấn kép chuột vào button btnDBFFile để tạo thủ tục xử lý sự kiện Click chuột trên nó, tương tự tạo thủ tục xử lý Click chuột cho 2 button còn lại và cho 2 Combobox rồi viết code VB 6.0 sau đây:

Option Explicit
'khai báo các biến cần dùng
Private srcid As Integer
Private dstid As Integer
Private VietLibCOM As New BKTRANSLib.BKTRANSLib
'thủ tục Click button chọn file DBF
Private Sub btnDBFFile_Click()
FileDialog.ShowOpen
txtDBFFile.Text = FileDialog.FileName
End Sub
'thủ tục Click button chọn file Excel
Private Sub btnExcelFile_Click()
FileDialog.ShowOpen
txtExcelFile.Text = FileDialog.FileName
End Sub
'thủ tục Click button bắt đầu chuyển mã & chuyển định dạng
Private Sub btnStart_Click()
'khai báo các biến cần dùng
Dim Connection1 As ADODB.Connection
Dim RecordSet1 As ADODB.Recordset
Dim Connection2 As ADODB.Connection
Dim RecordSet2 As ADODB.Recordset
Dim Command2 As ADODB.Command
Dim path As String, TableName As String
Dim strSQL As String, strbuf As String
Dim sfldbuf As String, dfldbuf As String
Dim i As Integer, j As Integer
Dim fStart As Integer, kq As Long
Dim fld As Variant
'xác định đường dẫn và file DBF
i = 1
Do
j = InStr(i, txtDBFFile.Text, "", vbBinaryCompare)
If (j <> 0) Then
i = j + 1
End If
Loop While j <> 0
'xác định đường dẫn
path = Mid(txtDBFFile.Text, 1, i - 1)
'xác định tên file DBF
TableName = Mid(txtDBFFile.Text, i)
'Tạo connection tới database nguồn
Set Connection1 = New ADODB.Connection
Connection1.Open "Provider=MSDASQL;DRIVER=Microsoft FoxPro VFP Driver (*.dbf);SourceType=DBF;SourceDB=" & path & ";"
'Tạo recordset chứa các record của table nguồn
Set RecordSet1 = New ADODB.Recordset
RecordSet1.Open TableName, Connection1, adOpenStatic, adLockReadOnly, adCmdTable
'Tạo connection tới database đích
Set Connection2 = New ADODB.Connection
Connection2.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & txtExcelFile.Text & ";Extended Properties=Excel 8.0;"
'Tạo command làm việc với database đích
Set Command2 = New ADODB.Command
Command2.ActiveConnection = Connection2
'xây dựng lệnh SQL tạo Table đích
strSQL = "CREATE TABLE " & txtWorksheet.Text & " ("
'duyệt tìm từng field của table nguồn
fStart = 1
For Each fld In RecordSet1.Fields
'tìm tên và kiểu của field
Select Case fld.Type
Case 2
strbuf = "Integer"
Case 3
strbuf = "Long"
Case 5
strbuf = "Currency"
Case 6
strbuf = "Double"
Case 11
strbuf = "Logical"
Case 202
strbuf = "Text"
Case 203
strbuf = "Text"
Case 7
strbuf = "Date"
Case 135
strbuf = "Date"
Case 129
strbuf = "Text"
Case 131
strbuf = "Integer"
Case 133
strbuf = "Date"
Case Else
MsgBox "Type với mã " & fld.Type & " chưa được xử lý!!!"
End Select
If fStart Then
strSQL = strSQL & fld.Name & " " & strbuf
fStart = 0
Else
strSQL = strSQL & ", " & fld.Name & " " & strbuf
End If
Next fld
strSQL = strSQL & ")"
'Xóa table trên database đích nếu có rồi
'Command2.CommandText = "DROP TABLE " & txtWorksheet.Text
'Command2.Execute
'Tạo mới table trên database đích
Command2.CommandText = strSQL
Command2.Execute
'Tạo recordset chứa các record của table đích
Set RecordSet2 = New ADODB.Recordset
RecordSet2.Open txtWorksheet.Text, Connection2, adOpenKeyset, adLockOptimistic, adCmdTable
'duyệt chuyển mã và copy từng record
While Not RecordSet1.EOF
'tạo mới record
RecordSet2.AddNew
For i = 0 To RecordSet1.Fields.Count - 1
'nếu field i là chuỗi thì chuyển mã
If (RecordSet1.Fields(i).Type = 129) Or (RecordSet1.Fields(i).Type = 202) Or (RecordSet1.Fields(i).Type = 203) Then
On Error GoTo AssignIt
sfldbuf = RecordSet1.Fields(i).Value
If Len(sfldbuf) <> 0 Then
kq = VietLibCOM.TransStr(srcid, dstid, sfldbuf, dfldbuf)
RecordSet2.Fields(i).Value = dfldbuf
Else: GoTo AssignIt
End If
Else
'nếu không thì chỉ copy dữ liệu
AssignIt:
RecordSet2.Fields(i).Value = RecordSet1.Fields(i).Value
End If
Next i
'lưu lại record lên table đích
RecordSet2.Update
'di chuyển đến record kế tiếp
RecordSet1.MoveNext
Wend
'đóng các đối tượng sử dụng lại
RecordSet1.Close
Connection1.Close
Connection2.Close
End Sub
'thủ tục Click chọn mã tiếng Việt đích
Private Sub cbDestCode_Click()
dstid = cbDestCode.ListIndex
End Sub
'thủ tục Click chọn mã tiếng Việt gốc
Private Sub cbSourceCode_Click()
srcid = cbSourceCode.ListIndex
End Sub
'thủ tục khởi tạo ban đầu cho ứng dụng
Private Sub Form_Load()
Dim i As Integer
Dim s As String
Dim ret As Integer
Dim cnt As Integer
'xóa trắng nội dung các đối tượng hiển thị
txtDBFFile.Text = ""
txtExcelFile.Text = ""
txtWorksheet.Text = ""
cbSourceCode.Clear
cbDestCode.Clear
'khởi động đối tượng chuyển mã
ret = VietLibCOM.Init()
'tìm số bảng mã được phép xử lý
cnt = VietLibCOM.GetCodeCount()
'hiển thị chúng vào 2 combox để user chọn lựa
For i = 0 To cnt - 1
VietLibCOM.GetCodeName i, s
cbSourceCode.AddItem s
cbDestCode.AddItem s
Next i
End Sub

6. Chọn menu Run.Start để chạy thử ứng dụng, chọn file DBF gốc, chọn file Excel chứa kết quả, chọn mã tiếng Việt gốc, chọn mã tiếng Việt đích, nhập tên worksheet chứa kết quả, chọn button "Bắt đầu copy và chuyển mã file DBF". Sau đó chạy Excel và mở xem thử nội dung file Excel kết quả.

Lưu ý chương trình trên có thể truy xuất bảng dữ liệu của bất kỳ database server nào (FoxPro, Access, Excel, MySQL, SQL, Oracle,...). Bạn chỉ cần hiệu chỉnh chuỗi ConnectionString miêu tả database cần truy xuất cho phù hợp với định dạng database cần truy xuất.

Bạn có thể liên hệ với tòa soạn để copy Project VB 6.0 của ứng dụng chuyển mã (có tên là VBTransDataTable) và file bktrans.dll chứa đối tượng COM phục vụ chuyển mã tiếng Việt.

Theo thanglong-aptech.com

More about

Lấy tên chương trình đang chạy trong máy tính bằng VB

Người đăng: vjnhhoa

Khi 1 file phần mềm chạy (do yêu cầu người dùng hay do chương trình khác kích hoạt), nó được nạp vào bộ nhớ và trở thành process. Bạn có thể dùng hàm API của Windows có tên là WTSEnumerateProcesses() để thống kê tất cả các process đang chạy trên máy, mỗi process là của file khả thi nào, từ đó quyết định xử lý chúng theo yêu cầu của mình.

Sau đây chúng tôi xin giới thiệu qui trình điển hình để xây dựng ứng dụng VB 6.0 demo việc thống kê tất cả các process đang chạy và hiển thị thông tin về chúng trong một ListVew để người dùng xem:
1. Chạy VB 6.0, tạo Project ứng dụng dạng 'Standard EXE' đơn giản.
2. Chọn menu Project.Components để hiển thị cửa sổ Components, duyệt tìm vào chọn mục Microsoft Window Common Controls 6.0 rồi Ok để thêm các control trong thư viện này vào ToolBox của Project.
3. Thiết kế Form gồm 1 ListView có tên mặc định là ListView1 như hình 4.
4. Chọn menu View.Code để hiển thị cửa sổ soạn mã nguồn cho form rồi viết code cho nó như sau:

Option Explicit
'khai báo hằng và kiểu cần dùng
Private Const WTS_CURRENT_SERVER_HANDLE = 0&
Private Type WTS_PROCESS_INFO
SessionID As Long
ProcessID As Long
pProcessName As Long
pUserSid As Long
End Type
'khai báo các hàm API cần dùng
Private Declare Function WTSEnumerateProcesses Lib 'wtsapi32.dll' Alias 'WTSEnumerateProcessesA' (ByVal hServer As Long, ByVal Reserved As Long, ByVal Version As Long, ByRef ppProcessInfo As Long, ByRef pCount As Long) As Long
Private Declare Sub WTSFreeMemory Lib 'wtsapi32.dll' (ByVal pMemory As Long)
Private Declare Sub CopyMemory Lib 'kernel32' Alias 'RtlMoveMemory' (Destination As Any, Source As Any, ByVal Length As Long)
'hàm tìm chuỗi từ địa chỉ bộ nhớ xác định
Private Function GetStringFromLP(ByVal StrPtr As Long) As String
Dim b As Byte
Dim tempStr As String
Dim bufferStr As String
Dim Done As Boolean
Done = False
Do 'lấy từng byte và xử lý
CopyMemory b, ByVal StrPtr, 1
If b = 0 Then 'kết thúc chuỗi
Done = True
Else
tempStr = Chr$(b)
bufferStr = bufferStr & tempStr
StrPtr = StrPtr + 1 'tăng pointer tới byte kế
End If
Loop Until Done
GetStringFromLP = bufferStr
End Function
'thủ tục khởi động Form
Private Sub Form_Load()
ListView1.View = lvwReport
'tạo header gồm 4 cột thông tin trên ListView
ListView1.ColumnHeaders.Add 1, 'SessionID', 'Session ID'
ListView1.ColumnHeaders.Add 2, 'ProcessID', 'Process ID'
ListView1.ColumnHeaders.Add 3, 'ProcessName', 'Process Name'
ListView1.ColumnHeaders.Add 4, 'UserID', 'User ID'
'thống kê và hiển thị các process
GetWTSProcesses
End Sub
'thủ tục thống kê và hiển thị thông tin các process
Private Sub GetWTSProcesses()
'khai báo các biến cần dùng
Dim RetVal As Long
Dim Count As Long
Dim i As Integer
Dim lpBuffer As Long
Dim p As Long
Dim udtProcInfo As WTS_PROCESS_INFO
Dim itmAdd As ListItem
'xóa nội dung cũ của ListView
ListView1.ListItems.Clear
'thống kê các process
RetVal = WTSEnumerateProcesses(WTS_CURRENT_SERVER_HANDLE, 0&, 1, lpBuffer, Count)
If RetVal = 0 Then 'nếu thất bại
MsgBox 'Error occurred calling WTSEnumerateProcesses. ' & 'Check the Platform SDK error codes in the MSDN Documentation' & ' for more information.', vbCritical, 'Error ' & Err.LastDllError
'dừng thủ tục
Exit Sub
End If
'nếu thống kê được thì lặp hiển thị từng process
p = lpBuffer
For i = 1 To Count
'copy thông tin về process i vào biến udtProcInfo
CopyMemory udtProcInfo, ByVal p, LenB(udtProcInfo)
'thêm hàng thông tin về process i vào ListView
Set itmAdd = ListView1.ListItems.Add(i, , CStr(udtProcInfo.SessionID))
itmAdd.SubItems(1) = CStr(udtProcInfo.ProcessID)
itmAdd.SubItems(2) = GetStringFromLP(udtProcInfo.pProcessName)
itmAdd.SubItems(3) = CStr(udtProcInfo.pUserSid)
'hiệu chỉnh p về vị trí miêu tả process kế tiếp
p = p + LenB(udtProcInfo)
Next i
Set itmAdd = Nothing
'giải phóng bộ nhớ
WTSFreeMemory lpBuffer
End Sub

Lưu ý tên file khả thi của process được chứa trong trường udtProcInfo.pProcessName.
5. Chọn menu Run.Start để chạy thử Form vừa xây dựng và xem danh sách các process đang chạy trên máy.

Theo pcworld

Nguồn bài viết: thanglong-aptech.com

More about

5 cách tăng tốc mạng gia đình

Người đăng: vjnhhoa

speed4 1 5 cách tăng tốc mạng gia đình


Nhưng trước tiên, hãy lưu ý một điều: mạng không dây của bạn hiện tại không thể chạy nhanh hơn kết nối Internet của mạng gia đình bạn. Nếu bạn có lý do để nghĩ rằng mạng của bạn không chạy nhanh như trước đây - hoặc lẽ ra phải nhanh tương ứng với phần cứng của bạn - hãy truy cập trang http://www.speedtest.net/ và kiểm tra tốc độ tải lên/xuống rồi so sánh chúng với những gì nhà cung cấp dịch vụ Internet (ISP) đã cam kết với bạn. Đây là động tác đầu tiên để phân biệt ISP của bạn có phải là thủ phạm khiến mạng chậm hay không.

1. Chuyển Router để sóng Wi-Fi phủ tốt hơn

Tiếp đến, hãy bắt đầu với những thao tác hết sức đơn giản để tối ưu hóa mạng không dây. Điều cần làm trước tiên là chuyển router đến một vị trí trung tâm hơn, hoặc đặt trong một căn phòng mà không bị ngăn cách bởi những bức tường dày, cũng như không có nhiều thiết bị khác có thể gây nhiễu. Các router phát tín hiệu dạng sóng lan rộng ra xung quanh theo mọi hướng, vì vậy nếu nó được đặt ở góc sâu nhất của căn nhà, hoặc dưới tầng hầm, tín hiệu có thể không đủ mạnh để xuyên vào tất cả các phòng. Như vậy một số phòng sẽ không có sóng Wi-Fi (hoặc quá yếu) để bạn có thể kết nối thiết bị với Internet.

Các chuyên gia vẫn thường khuyên rằng, để sóng Wi-Fi phủ rộng, router tích hợp tính năng phát sóng Wi-Fi nên được treo lên cao, nhưng cũng không nên sát với trần nhà đúc bê tông.

2. Coi chừng điện thoại không dây phát trùng kênh Router

Điện thoại không dây (thường gọi là mẹ bồng con) có thể gây nhiễu vì một số loại phát sóng trùng kênh với router của bạn. Nếu bạn nghĩ rằng điều đó có thể xảy ra, hãy thử đổi kênh trên điện thoại và xem sóng Wi-Fi có còn bị nhiễu nữa hay không.

3. Mua một bộ mở rộng (Extender)

Vấn đề hóc búa nhất với bạn là mở rộng phạm vi vùng phủ sóng của mạng. Một tòa nhà nhiều tầng lầu hay khu biệt thự rộng khiến có những khu vực không nhận được tín hiệu (hoặc tín hiệu quá yếu) phát từ router. Và dĩ nhiên việc di chuyển router cũng không khả thi. Lúc đó bạn sẽ cần dùng tới bộ mở rộng tín hiệu. Tuy nhiên, bạn sẽ phải trả giá về hiệu suất vì tín hiệu qua bộ mở rộng sẽ bị yếu đi. Điều đó có thể không quan trọng nếu bạn chỉ lướt Web, nhưng nếu thường chơi game online, bạn sẽ cảm thấy thất vọng vì thỉnh thoảng sẽ bị "về thành dưỡng sức". Đó cũng không phải cách tốt để xem phim trực tuyến trên TV qua các set-top box.

4. Thay đổi thiết bị mạng nếu cần

Nếu muốn tăng tốc cho mạng Wi-Fi hiện có của bạn sau khi đã cố gắng thử chuyển router tới một vài vị trí khác mà vẫn không ưng ý, có lẽ đã đến lúc bạn nên nâng cấp phần cứng mạng. Một số điều cần lưu ý:

Thành phần chạy chậm nhất trong mạng sẽ kéo tốc độ mạng trên toàn nhánh xuống theo.

Các chuẩn Wi-Fi đã thay đổi nhanh trong những năm qua. Các chuẩn 802.11a/b/g đã quá cũ. Chuẩn mới nhất 802.11n mới là thứ bạn cần.

Nhiều MTXT được sản xuất gần đây hỗ trợ công nghệ kết nối Wi-Fi theo chuẩn "n". Và bạn hãy nhớ kiểm tra router (hay Wireless Access Point - AP, nếu dùng rời) có hỗ trợ chuẩn "n" hay không. Lưu ý là việc thay router (nếu không hỗ trợ "n") là phương án tối ưu thay vì nâng cấp mạng bằng cách bổ sung AP và giữ lại router.

Việc cài đặt router mới không mất nhiều thời gian, và có thể nhận được hỗ trợ kỹ thuật miễn phí từ phía bán hàng. Một số router hiện nay được nhắm cho người dùng gia đình thiếu một số tính năng cao cấp thường được dùng trong doanh nghiệp, đổi lại chúng có giá rẻ và rất dễ cài đặt. Những tính năng cao cấp có lẽ chỉ thêm tốn tiền trong khi bạn hầu như không dùng tới chúng.

5. Để ý tới phương tiện truyền dẫn điện

Bạn nên nhớ, những thiết bị điện như dây dẫn, ổ cắm, ổ kéo dài cần phải đảm bảo chất lượng để không gây nhiễu. Trong trường hợp này, có lẽ không nên vì quá tiết kiệm mà mua đồ giá rẻ, lợi bất cập hại. "Hàng hiệu" là lựa chọn hàng đầu.

Tín hiệu điện trong nhà được truyền qua hệ thống dây dẫn điện và các thiết bị đấu nối (ổ cắm, phích cắm...). Adapter của modem hoặc router băng thông rộng sẽ được cắm vào một ổ điện có sẵn trong mạng điện, hoặc ổ nối dài.

Hệ thống dây điện và ổ cắm cũ kỹ có thể là một mối bận tâm vì rất dễ gây nhiễu, cung cấp nguồn điện không "sạch" cho thiết bị khiến tín hiệu mạng có thể không ổn định.

Theo pcwporld

Nguồn: 5 cách tăng tốc mạng gia đình

More about

Chọn máy chủ và phần mềm dùng cho ảo hóa

Người đăng: vjnhhoa

Ảo hóa giúp việc quản trị đơn giản cũng như giảm chi phí. Bằng cách dùng một máy chủ vật lý để chạy nhiều máy chủ ảo hóa, bạn có thể giảm nhiều chi phí hoạt động cũng như chi phí đầu tư.

servers Chọn máy chủ và phần mềm dùng cho ảo hóa

Hiện nay, gần như không thể mua máy chủ mà không phải là loại đa nhân nhưng nhiều doanh nghiệp nhỏ (dưới 100 nhân viên) lại yêu cầu máy chủ không cần quá mạnh như vậy. Tuy nhiên, nếu tuân theo yêu cầu trên thì khả năng là doanh nghiệp nhỏ sẽ trang bị máy chủ vật lý vừa đắt tiền, ít hiệu quả vừa tiêu tốn nhiều năng lượng, tỏa nhiều nhiệt. Đó là lý do vì sao nên mua máy chủ đa nhân - có 4, 6 hay thậm chí 12 nhân trên một bộ xử lý - để lưu trữ máy chủ ảo hóa, phù hợp cho mọi quy mô hoạt động của doanh nghiệp.

Chọn máy chủ lưu trữ

Quyết định sự thành công máy chủ ảo hóa trong môi trường có quy mô nhỏ hơn bắt đầu bằng máy chủ lưu trữ vật lý (host). Mặc dù nó sẽ chịu trách nhiệm cho việc lưu trữ hàng tá máy chủ ảo, nhưng lại yêu cầu tài nguyên trên bộ xử lý (CPU) ít hơn bạn nghĩ.
Tùy theo phần mềm ảo hóa (chẳng hạn hypervisor), bạn sẽ có thể chạy máy chủ ảo hóa trên CPU 4 hoặc 6 nhân. Lý do là hầu hết máy chủ ảo hóa được vận hành gần như ở trạng thái duy trì (idle) trong phần lớn thời gian. Khi máy chủ ảo hóa bắt đầu chạy, tài nguyên của chúng có khuynh hướng chia ra cho CPU, RAM, đĩa cứng và truy xuất mạng vào/ra, trong đó chỉ một số máy chủ ảo yêu cầu tài nguyên CPU đáng kể. Bằng cách tận dụng ưu điểm này, bạn có thể phối hợp chặt chẽ nhiều máy chủ vật lý trên cùng một máy chủ lưu trữ duy nhất.
Tuy nhiên, đối với các máy chủ cơ sở dữ liệu, tải dữ liệu nhiều không thích hợp cài đặt trên máy chủ ảo hóa. Tất cả tùy thuộc vào tài nguyên phần cứng trên máy chủ lưu trữ, tính năng phần mềm ảo hóa, và cũng tùy thuộc vào những quy định của máy chủ ảo hóa. Việc thiết lập và kiểm tra các yêu cầu này trước khi thực hiện là điều không quá khó.
Chọn phần cứng, một nguyên tắc cần nhớ là chọn CPU đa nhân và có tốc độ xung nhịp lớn dành cho máy chủ lưu trữ; nếu bạn chọn giữa CPU 4 nhân tốc độ 2,93GHz và CPU 6 hoặc 12 nhân tốc độ 2,4GHz, bạn nên chọn CPU 6 hoặc 12 nhân. Bởi vì khả năng chia tải máy chủ ảo trên CPU đa nhân nhanh hơn, hiệu suất hoạt động đồng bộ hơn trên tất cả máy chủ ảo.

RAM và đĩa cứng

Máy chủ lưu trữ ảo hóa có thể luôn dùng nhiều bộ nhớ hệ thống (RAM), vì vậy hãy trang bị càng nhiều RAM càng tốt, và lựa chọn loại RAM nhanh nhất có thể. Mặt khác, việc phân bổ RAM cũng bị khống chế khắt khe hơn nhiều so với CPU. Càng nhiều RAM, bạn càng có thể có nhiều máy chủ ảo hóa.
Trong môi trường nhỏ hơn, bạn có thể không cần mạng lưu trữ hay thiết bị lưu trữ qua mạng để lưu ảnh máy chủ ảo hóa, vì máy chủ lưu trữ sẽ chịu trách nhiệm cho công việc này. Trong trường hợp đó, càng nhiều đĩa cứng càng tốt. Yêu cầu chung, ổ đĩa SATA chạy RAID 5 hay RAID 6 thì đủ đáp ứng, mặc dù ổ đĩa cứng SAS (Serial Attached SCSI) cung cấp hiệu suất hoạt động hiệu quả hơn.

Phần mềm ảo hóa

Bạn có nhiều lựa chọn phần mềm miễn phí. VMware Server miễn phí chạy trên Windows hay Linux. Phần mềm ảo hóa cần hệ điều hành để cung cấp các yêu cầu chính cho hoạt động và chúng dễ cài đặt và sử dụng. Nếu bạn muốn miễn phí hoàn toàn, hãy cài đặt Linux trên máy chủ và chạy bản VMware Server trên Linux. Nếu không, hãy cài đặt bản Windows Server 2003 hay 2008 và chạy bản VMware Server trên Windows.
VMware có bản miễn phí là VMware ESXi. Phiên bản này được xây dựng trên cơ sở của bản VMware trả phí, ổn định, nhưng VMware ESXi có một số vấn đề tương thích phần cứng, kiểm tra tương thích phần cứng tại find.pcworld.com/70448.
Hyper-V của Microsoft có lẽ tốt cho hệ thống mạng chạy Windows. Về mặt kỹ thuật, Hyper-V không miễn phí, vì nó yêu cầu mua Windows Server 2008 R2, tuy nhiên Hyper-V có giao diện đơn giản và tích hợp tốt vào hệ điều hành. Nếu máy chủ ảo hóa chạy trên máy chủ lưu trữ Windows Server 2008, bạn có thể nghĩ đến việc mua bản quyền. Mua Windows Server 2008 R2 cho phép chạy 4 máy chủ Windows Server 2008 ảo, chỉ với 1 bản quyền.
Bạn cũng có thể chọn lựa tùy chọn khác, chẳng hạn như XenServer của Citrix. Phiên bản miễn phí này có tính năng có thể không bằng bản miễn phí của VMware, chẳng hạn quản lý nhiều máy chủ. XenServer không theo trào lưu như các phần mềm khác, nhưng nó có thể tải về và cài đặt miễn phí, và không cần dựa vào hệ điều hành hay bản quyền hệ điều hành nào.

Card mạng

Trong nhiều trường hợp, máy chủ vật lý chỉ dùng 1 hay 2 card mạng để hỗ trợ toàn bộ môi trường ảo hóa, nhưng nếu bộ chuyển mạch mạng (switch) cho phép bạn gộp đường kết nối để tăng băng thông cho máy chủ ảo thì rất tốt. Việc gộp 2 hay nhiều card mạng tốc độ gigabit, giúp bạn tạo một card mạng ảo lớn hơn, hỗ trợ nhiều băng thông hơn cho người dùng và cho các máy chủ vật lý khác trên mạng. Nhiều bộ chuyển mạch tầm trung hỗ trợ tính năng này.
Nếu bộ chuyển mạch mạng thiếu tính năng gộp đường kết nối, bạn có thể dành một card mạng cho một máy chủ có tải nhiều nhất. Card mạng gigabit giờ cũng khá rẻ, vì vậy hãy trang bị ít nhất 4 card mạng gigabit cho máy chủ vật lý.

Nguồn điện

Bạn thường thấy một số máy chủ chỉ có một nguồn cung cấp điện duy nhất, nhưng nếu bạn chạy nhiều máy chủ ảo hóa trên một máy chủ lưu trữ, bạn nên đầu tư thêm bộ nguồn chạy chế độ dự phòng. Tất cả máy chủ ảo hóa của bạn đều phụ thuộc hoàn toàn vào nguồn điện cung cấp của máy chủ vật lý. Việc trang bị nguồn điện dự phòng khá đáng giá nếu bạn dư giả.

Theo PCWorld VN

Nguồn : Chọn máy chủ và phần mềm dùng cho ảo hóa

More about

Chuyển đổi biểu thức thành tổng giá trị

Người đăng: vjnhhoa

Xin hướng dẫn cách đổi một chuỗi dạng công thức sang số (ví dụ chuỗi (3+2)*2, sau khi biến đổi sẽ là 10).

Trả lời :

Yêu cầu của bạn thuộc dạng viết chương trình dịch. Để giải quyết tốt và tổng quát được vấn đề, trước hết bạn phải định nghĩa cú pháp được dùng để xây dựng công thức. Sau khi có cú pháp xây dựng công thức, bạn sẽ viết 2 module sau để phục vụ dịch công thức sang giá trị cuối cùng của nó:

- Module xử lý từ vựng, module này có nhiệm vụ chuyển công thức từ dạng chuỗi ký tự thô sang chuỗi token có nghĩa. Bạn có thể dùng công cụ Lex để xây dựng module này dễ dàng.
- Module xử lý cú pháp, module này có nhiệm vụ chuyển công thức từ dạng chuỗi token sang dạng cây cú pháp, nhờ đó thực hiện tính giá trị của công thức được dễ dàng. Bạn có thể dùng công cụ Yacc để xây dựng module này.

Cụ thể, nếu ta định nghĩa cú pháp của công thức ở mức đơn giản như sau:
hằngsố = chuỗi từ 1 tới n ký số thập phân
toántử = + | - | * | /
dấu ngăn = ( | )
côngthức = hằngsố
| (côngthức)
| côngthức + côngthức
| côngthức - côngthức
| côngthức * côngthức
| côngthức / côngthức
1. Ta có thể dùng ngôn ngữ đặc tả Lex để đặc tả các biểu thức chính qui miêu tả các token được dùng để xây dựng công thức như sau:

include "expr.h"
%%
[0-9]* { yylval.ival = atoi(yytext);
return ICONST; }
"*" { return MUL; }
"-" { return SUB; }
"+" { return ADD; }
"/" { return DIV; }
"(" { return LPAR; }
")" { return RPAR; }
. { }
%%

Cất đoạn lệnh trên vào file expr.l. Lưu ý rằng để hiểu và viết được các lệnh Lex đặc tả các token, bạn cần phải biết cú pháp của ngôn ngữ Lex (vốn rất dễ hiểu).

2. Soạn nội dung file expr.h như sau để phục vụ cho file expr.l ở trên:
//đoạn code C định nghĩa 1 số kiểu và hằng cần dùng

typedef union {
char* s;
int ival;
int t;
} YYSTYPE;
extern YYSTYPE yylval;
# define ICONST 257
# define ADD 258
# define SUB 259
# define DIV 260
# define MUL 261
# define LPAR 262
# define RPAR 263
3. Tương tự, ta có thể dùng ngôn ngữ đặc tả Yacc để đặc tả cú pháp của công thức và tính giá trị công thức như sau:
%{
//đoạn code C chứa các hàm dịch vụ
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
extern FILE* yyin;
char pexpr[256];
int ketqua;
void yyerror(char* ps) {
printf("%s",ps);
}
%}
%union {
char* s;
int ival;
int t;
}
%token ICONST ADD SUB DIV MUL LPAR RPAR
%type Expr ICONST
%type ADD SUB MUL DIV LPAR RPAR
%left ADD SUB
%left MUL DIV
%start Expr
%%
Expr : ICONST
{ $$ = yylval.ival; ketqua = $$;}
| LPAR Expr RPAR
{ $$ = $2; ketqua = $$;}
| Expr ADD Expr
{ $$ = $1 + $3; ketqua = $$;}
| Expr SUB Expr
{ $$ = $1 - $3; ketqua = $$;}
| Expr DIV Expr
{ $$ = $1 / $3; ketqua = $$;}
| Expr MUL Expr
{ $$ = $1 * $3; ketqua = $$;}
;
%%
//chương trình tính công thức được viết bằng C
void main(int argc, char* argv[]) {
loop:
printf("Nhập biểu thức cần tính : ");
scanf("%s",pexpr);
// Cất chuỗi ký tự miêu tả công thức lên file
remove("ftmp.txt");
yyin = fopen("ftmp.txt","w");
fprintf(yyin,"%sn",pexpr);
fclose(yyin);
// Mở lại file chứa công thức
yyin = fopen("ftmp.txt","r");
// Phân tích biểu thức và tính kết quả
yylex_init();
yyparse();
printf("Biểu thức vừa nhập có giá trị là : %dn",ketqua);
goto loop;
}

Cất đoạn lệnh trên vào file expr.y. Lưu ý rằng để hiểu và viết được các lệnh Yacc đặc tả cú pháp, bạn cần phải biết cú pháp của ngôn ngữ Yacc (vốn khá dễ hiểu).

4. Soạn đoạn script sau để dịch tự động các file ra chương trình khả thi và lưu lên file có tên là makefile:

CFLAGS= -c -g255 -v -ml -C -Ic:bc31include
LFLAGS= -ml -v -Lc:bc31lib
CC= bcc
GRAPH= c:bc31libgraphics.lib
yacc= c:Toolsfyacc
lex= c:Toolsflex
expr: expr.obj exprlex.obj
$(CC) -eexpr $(LFLAGS) expr.obj exprlex.obj
expr.obj: expr.c expr.h
$(CC) $(CFLAGS) expr.c
exprlex.obj: exprlex.c expr.h
$(CC) $(CFLAGS) exprlex.c
expr.c: expr.y
$(yacc) -vdl expr.y
del expr.c
ren ytab.c expr.c
del expr.h
ren ytab.h expr.h
exprlex.c: expr.l
$(lex) -tl expr.l >exprlex.c

Đoạn script trên sẽ dùng chương trình dịch BorlandC được cài đặt vào thư mục c:bc31, nó cũng dùng 2 tiện ích Flex và Fyacc được cài đặt ở thư mục c:Tools. (Bạn có thể tải về từ website TGVT 2 tiện ích này, với tên file lần lượt là Bison111.zip và flex251.zip).

4. Chạy tiện ích Start.All Program.Accessories.Command Prompt, nhập và thực hiện các lệnh sau:
c:>cd exprcalc
c:exprcalc>make expr
5. Sau khi biên dịch ra file chương trình có tên là expr.exe, bạn có thể chạy thử ứng dụng rồi nhập thử từng công thức cần tính và xem kết quả

Theo pcworld

Nguồn : thanglong-aptech.com

More about

Truy vấn có tham số từ form trong Visual Foxpro 6.0

Người đăng: vjnhhoa

Trong lúc lập trình, chúng ta thường phải xây dựng các lệnh truy vấn theo nội dung động do người dùng nhập vào. Ngôn ngữ FoxPro (và các ngôn ngữ lập trình khác) cho phép ta thực hiện điều này dễ dàng.

Thí dụ ta thiết kế 1 Form FoxPro đơn giản gồm 1 textbox có tên là txtHoten và 1 button có tên là btnSearch, đoạn code FoxPro sau (nằm trong thân thủ tục xử lý sự kiện click chuột vào button btnSearch) sẽ tạo lệnh truy vấn Select để tìm các record của bảng table1 trong file database data1.dbc mà nội dung trường hoten có chứa chuỗi nhập vào textbox txtHoten:

*khai báo biến cần dùng
public shoten
*mở database cần dùng
open database c:datadata1.dbc
*chứa chuỗi nhập vào biến
shoten = ALLTRIM(thisform.txtHoten.Text)
*thực hiện tìm kiếm
Select * from table1 where hoten like '%&str%'

Lưu ý, trong lệnh Select (hay bất kỳ lệnh truy vấn SQL nào), bạn có thể chèn nội dung động bằng cách dùng cú pháp &ten, trong đó ten là tên biến chứa nội dung chuỗi động cần dùng.

Theo pcworld

Nguồn : Thanglong-Aptech.com

More about

Cảnh giác virus tấn công người dùng Twitter

Người đăng: vjnhhoa

Các chuyên gia của Kaspersky Lab lại vừa đưa ra cảnh báo về một loại sâu mới tấn công các tài khoản Twitter. Loại sâu này khai thác dịch vụ rút gọn đường dẫn của nhà cung cấp Google là goo.gl.

 Cảnh giác virus tấn công người dùng Twitter

Các đường dẫn được rút gọn đang được sử dụng rộng rãi trong các hệ thống mạng xã hội giúp rút ngắn độ dài các thông điệp, tin nhắn cho người sử dụng dịch vụ Twitter. Tuy nhiên, theo cảnh báo gần đây của phòng thí nghiệm Kaspersky, các đường dẫn ngắn này có nhiều mối đe dọa tiềm ẩn, bởi các đường dẫn rút gọn làm cho người dùng không biết trước nội dung của chúng và dễ bị dẫn vào các trang web có thể gây hại. Những dấu hiệu mới nhất càng chứng tỏ giới tin tặc đang tăng cường sử dụng phương thức tấn công này.

Đợt tấn công mới nhất trên mạng xã hội Twitter chứng kiến một loại sâu máy tính sử dụng dịch vụ đường dẫn rút gọn uy tín của Google là goo.gl. Chúng sẽ dẫn dụ người dùng đến một trang web cung cấp phần mềm diệt virus giả mang tên "Security Shield". Sau nhiều lần chuyển trang, người sử dụng bị chuyển đến một trang bị bọn tin tặc nhúng vào các mã độc hại bao gồm cả các mã RSA chạy trên nền phổ biến JavaScrip, có hàng ngàn các thông điệp Twitter tiếp tục phát tán loại sâu này mỗi ngày.

Quá trình tấn công sẽ xảy ra như sau, người dùng sẽ nhận được một cảnh báo rằng máy tính bạn đang chạy các ứng dụng nguy hiểm khi đang truy cập các trang web. Lời cảnh báo còn đưa hướng dẫn chi tiết giúp người dùng loại bỏ tất cả các mối đe dọa đó bằng cách tải phầm mềm diệt virus "Security Shield". Kết quả là máy tính người dùng sẽ bị nhiễm các mã độc hại khi chọn cài đặt chương trình diệt virus giả mạo đó.

Bên cạnh dùng phần mềm diệt virus, các chuyên gia bảo mật cũng khuyến cáo người dùng phải luôn cẩn thận khi truy cập vào các liên kết ngẫu nhiên ngay cả trên những mạng xã hội phổ biến như Twitter và các dịch vụ uy tín như Goo.gl.

Lê Mỹ
Theo ictnews

Nguồn: Cảnh giác virus tấn công người dùng Twitter

More about