Wednesday, April 22, 2015

Ưu, nhược điểm của Google Blogger


Có rất nhiều nhà cung cấp dịch vụ blog khác nhau trên internet. Mỗi dịch vụ có điểm mạnh yếu riêng. Tùy theo mục đích, túi tiền, khả năng và số đông người dùng bạn có thể lựa chọn cho mình một dịch vụ blog tương ứng. Bài viết này chủ yếu phân tích điểm mạnh và yếu của Google Blogger, giúp bạn có thêm cái nhìn tổng thể so sánh với dịch vụ mà mình đang dùng.

Điểm mạnh:

  • Hoàn toàn miễn phí, lưu trữ trên máy chủ rất mạnh của Google bảo đảm blog của bạn dễ dàng truy xuất bất kỳ lúc nào. Khi có vấn đề bạn sẽ được thông báo cụ thể tại http://status.blogger.com.
  • Nhanh chóng được đánh chỉ mục vào bộ máy tìm kiếm số một thế giới và bài viết dễ dàng được tìm thấy trên công cụ này, mới đây là trên công cụ tìm kiếm blog: Google BlogSearch.
  • Giao diện cài đặt hỗ trợ tiếng Việt. Ngôn ngữ không còn là rào cản trong việc tiếp cận và sử dụng hết tính năng của Blogger đối với người dùng Việt Nam.
  • Tiện ích phong phú, đáp ứng tối đa nhu cầu người dùng. Hiện tại Blogger có 16 tiện ích và3 tiện ích mới sắp sửa trình làng.
  • Cá nhân hóa tối đa và kiểm soát hoàn toàn giao diện, nội dung xuất hiện trên blog khi làm chủ mã nguồn.
  • Không giới hạn băng thông (bandwidth) hàng tháng.
  • Không giới hạn số blog cho một tài khoản.
  • Không giới hạn số bài đăng cho một blog.
  • Không giới hạn kích thước cho một bài đăng (post).
  • Không giới hạn số nhận xét (comments).
  • Không giới hạn số thành viên cùng làm một blog.
  • Có thể nhúng các đoạn mã JavaScript quảng cáo, đặc biệt tích hợp với chương trình kiếm tiền trên mạng nổi tiếng Google AdSense thông qua tiện ích Adsense.
  • Có thể dùng tên miền riêng bằng cách thay đổi CName trên máy chủ quản lý tên miền. Blog sẽ có địa chỉ như một website! (Blog của tôi chẳng hạn :-)) !). Ngoài ra bạn cũng có thể dùng subdomain (tên miền con) để tạo blog. Những nhà cung cấp tên miền nhưgodaddy.com cho phép sử dụng 90 tên miền con với chỉ một tên miền chính và như vậy bạn có thể tạo ... 91 blog khác nhau (90 tên miền con: abc.yourdomain.com + 1 tên miền chính: www.yourdomain.com)!
  • Chỉ cần có tài khoản Gmail, bạn có thể dùng Blogger chung với nhiều vụ nổi tiểng khác của Google: Talk (Trình tán gẫu trực tuyến, giống như Yahoo! Messenger,…), Reader (Công cụ đọc tin RSS trực tuyến), Picasa Web Albums (Kết hợp với phần mềm Picasa để lưu trữ, quản lý ảnh trực tuyến), Orkut (Mạng xã hội ảo), Docs (Dịch vụ xử lý văn bản, bảng tính và trình diễn trực tuyến, như Microsoft Offices trên Windows), Pages (Dịch vụ tạo web), ... Nếu dùng tài khoản Google (tài khoản này có thể đăng ký bằng bất kỳ địa chỉ email nào), bạn không sử dụng được với các dịch vụ riêng rẻ như Gmail, Talk,…

Điểm hạn chế (Các hạn chế này nêu ra cho vui thôi nhé, bởi vì bạn khó mà đạt đến ngưỡng của chúng!):
  • Giới hạn 1 MB cho một trang (trang đầu tiên và trang lưu trữ).
  • Giới hạn 50 post mỗi ngày, nếu đăng hơn số này bạn phải nhập mã kiểm tra.
  • Giới hạn 300 MB lưu trữ hình ảnh khi đăng hình thông qua Blogger, Picasa, hay Hello(dịch vụ chia sẻ ảnh thông qua Google Picasa). (Tin vui: Blogger đã cho bạn lưu đến 1 GB hình ảnh.)
  • Miêu tả blog (Blog Description) giới hạn dưới 500 ký tự.
  • Thông tin về những việc ưu thích và mối quan tâm trên hồ sơ (Profile Interests and Favorites) giới hạn dưới 2000 ký tự cho mỗi khung khai báo.
(Thật ra ít khi nào bạn vượt các ngưỡng trên, các giới hạn này xem ra không phải là mối bận tâm lớn)
  • Thiếu một công cụ kế nối với người dùng khác cùng mạng (như Yahoo! 360).(Công cụ đó đã có Google Connect)
  • Số template không nhiều và được thiết đẹp (như WordPress) (Trên mạng thiếu gì template đẹp!)
  • Người dùng muốn cá nhân hóa cần phải biết một ít kiến thức về CSS, XML và HTML.
  • Không truy cập được blog do một số nhà cung cấp dịch vụ internet (ISP: Internet Service Provider) Việt Nam sử dụng bộ lọc hạn chế (Blog có tên miền riêng khắc phục được hạn chế này)(VNPT không còn chặn nữa).

Nhìn chung bạn là người có kiến thức tin học, muốn thoải mái xây dựng một ngôi nhà chuyên nghiệp và không phải mất nhiều thời gian để xây dựng website, thuê dịch vụ lưu trữ (hosting): Hãy chọn Blogger!

Nếu bạn muốn trở thành một blogger chuyên nghiệp, hãy đầu tư một khoản ban đầu mua tên miền và thuê dịch vụ lưu trữ, WordPress – phần mềm mã nguồn mở sử dụng ngôn ngữ lập trình PHP và hệ cơ sở dữ liệu MyQSL, với nhiều plugin, theme phong phú là lựa chọn hàng đầu. Tuy nhiên hướng đi này chưa được nhiều người Việt Nam quan tâm có chăng các công ty dùng WordPress làm blog công ty tích hợp trong một phần trang web của họ.


Cám ơn bạn đã gắn bó với Thủ Thuật Blog thời gian qua. Năm 2007 sắp qua, năm mới lại đến, chúc bạn và gia đình dồi dào sức khỏe, hưởng một mùa xuân đầm ấm an khang thịnh vượng - vạn sự như ý.
Theo.thuthuatblog.com

Saturday, November 1, 2014

Ebook lập trình VBA trong Excel

Tài liệu hướng dẫn lập trình VBA trong Excel





















Nhấn vào đường link kế bên để xem và tải tài liệu => Tài liệu lập trình VBA trong Excel

Đồ án CNTT Chữ Ký Số Và Ứng Dụng Trong hộ Chiếu Điện Tử

Chữ ký số và ứng dụng của nó để kiểm soát, xác thực và bảo vệ thông tin trong hộ chiếu điện tử


Nhấn vào đường dẫn bên để xem và tải tài liệu => Ứng dụng chữ ký số trong hộ chiếu điện tử

Luận văn lập trình web dựa trên mô hình MVC

Luận văn lập trình web dựa trên mô hình  MVC

















Nhấn vào đường dẫn để xem và download: Tài liệu Luận văn lập trình web dựa trên mô hình  MVC

Saturday, January 18, 2014

Bài 15: Kiểu dữ liệu trong Autoit

KIỂU DỮ LIỆU

Trong AutoIt chỉ có một loại dữ liệu gọi là Variant (tạm dịch là biến). Một biến có thể chứa dữ liệu theo kiểu chuỗi (string) hoặc là kiểu số (number) tùy vào tình huống sử dụng. Ví dụ như nếu bạn nhân hai biến với nhau thì lúc này biến có kiểu number, còn nếu bạn sử dụng phép toán ghép chuỗi với hai biến thì chúng sẽ được đối xử như các chuỗi ký tự.

dụ :
                10 * 20 sẽ bằng số 200        (* là nhân hai biến với nhau)
      10* "20" cũng sẽ bằng số 200
hoặc     "10" * "20" cũng bằng số 200
      10 & 20 sẽ trả về một chuỗi là "1020"  (& là phép toán ghép chuỗi)

Nếu một chuỗi được sử dụng như một số, một phép gọi hàm Number()nên được thực hiện. Và nếu như ký tự đầu tiên của chuỗi không phải là một ký số thì sẽ trả về một số 0.dụ :

      10 * "abc"        sẽ trả về số 0
      10* number("abc")       cũng trả về 0
      10* number("25ghj")     sẽ trả về 250

Nếu một chuỗi được sử dụng trong kiểu boolean (True/False) và nó là một chuỗi rỗng "" thì sẽ được xem như bằng 0 (False).


KIỂU SỐ - NUMBER

Number có thể là số thập phân như : 3,  5.642-8
cũng có thể là số thập phân theo dạng khoa học, ví dụ như 1.5e3 sẽ thay cho 1500 (vì 1.5*10^3)
hay hệ thập lục phân (hexa) : 0x409 hoặc 0xff4a.

Chú ý :
·         Hệ hexa trong AutoIt phải bắt đầu với 0xtheo sau là các ký số từ 0 đến 9 hoặc/và các ký tự a, b, c, d, e, f.
·         Khi tính toán các biểu thức số, bạn không cần quan tâm đến việc giới hạn của kiểu dữ liệu. Nếu kết quả là số nguyên, AutoIt sẽ trả về cho bạn số nguyên. Nếu kết quả là số thập phân, AutoIt sẽ trả về giá trị thập phân. Ở dạng thập phân, giá trị lớn nhất có thể chứa là (264 - 1)/2.
·         Một số hàm trong AutoIt chỉ làm việc với số nguyên 32 bit (mang giá trị từ 0 đến 232 -1) và các số này sẽ được chuyển đổi tự động, tùy vào hàm sử dụng. Ví dụ như BitAnd.


KIỂU CHUỖI - STRING

Chuỗi ký tự được rào trong cặp dấu ngoặc kép " " hoặc cặp dấu nháy đơn ' '. dụ :
        "this is a string"
   ' Welcome to AutoIt ! '
Mặc dù AutoIt hỗ trợ hai phương thức biểu diễn chuỗi nhưng khi sử dụng bạn phải sử dụng thống nhất có trật tự, không thể bắt đầu rào chuỗi với dấu ngoặc kép, kết thúc chuỗi với dấu nháy đơn và ngược lại. Ví dụ sau cho thấy chuỗi không hợp lệ :
                                " doctor for pc '(sẽ báo lỗi khi chạy)
Tuy nhiên, trong trường hợp bạn muốn nhấn mạnh một nội dung nào đó trong chuỗi bằng dấu ngoặc kép hoặc dấu nháy đơn thì AutoIt cũng hỗ trợ việc trộn hai dạng ký tự này. Và bạn phải nhớ tính trật tự và đầy đủ trong khi sử dụng.dụ :
                                ' It is a "black" web '
            "This "sentence" contains "lots" of "double-quotes". "
            " It 's a dog "
nhưng                   ' it 's a dog '   (là một chuỗi bị lỗi)

Một biến kiểu chuỗi có thể chứa đến 2,147,483,647 ký tự (tương đương với 1651 quyển sách dày 500 trang, mỗi trang có 40 dòng, mỗi dòng có 65 ký tự)


KIỂU BOOLEAN

Kiểu boolean chỉ mang hai giá trị đúng hoặc sai (True/False). Trong nhiều trường hợp sử dụng thì một kiểu boolean trả về False khi giá trị của biến đó là 0 hoặc là chuỗi rỗng "". Tất cả các trường hợp khác 0 đều được xem như True, theo mặc định thì True bằng 1. Thông thường, các phép toán logic AND, OR hoặc NOT thường được dùng với kiểu boolean trong việc thẩm định điều kiện.

dụ :
        $b1 = true
   $b2 = false
   $b3 = $b1 And $b2--> ($b3 sẽ bằng False)
   $b2 = 5
   $b3 = $b1 And $b2--> ($b3 sẽ bằng True)
   $b3 = $b1 + $b2         --> ($b3 sẽ bằng 6)
   $b3 = NOT $b3           --> ($b3 sẽ bằng 0)

Trong trường hợp bạn xử lý một biến boolean như một chuỗi thì :
một boolean là true sẽ chứa chuỗi "True"
một boolean là false sẽ chứa chuỗi "False"

dụ :
        $b1 = true
   $str = "test is : "
   $string = $str & $b1    ($string sẽ chứa chuỗi "Test is : True")


KIỂU NHỊ PHÂN - BINARY

Kiểu binary có thể lưu giữ mọi byte giá trị, chúng được chuyển đổi sang dạng hexa khi lưu trong một biến chuỗi. Ví dụ :

$bin = Binary("abc")
$str = string($bin)        --> "0x616263"


KIỂU CON TRỎ - POINTER

Kiểu con trỏ dùng để lưu trữ địa chỉ bộ nhớ 32 bit hoặc 64 bit tùy vào phiên bản AutoIt được sử dụng. Thực chất con trỏ là một số nguyên chỉ định vị trí của thành phần dữ liệu nào đó trong bộ nhớ. Tuy nhiên, khi truy xuất trong AutoIt thì con trỏ sẽ được lưu ở dạng hexa trong một biến kiểu chuỗi. Handle (tạm dịch là kênh hay địa chỉ trong bộ nhớ) của cửa sổ được trả về bởi hàm WinGetHandle là một kiểu con trỏ, mang giá trị ở dạng hexa. Nếu muốn xem ở dạng thập phân bình thường ta dùng hàm Number .


--------------------------------


Mặc dù phần này trình bày nhiều kiểu dữ liệu mà AutoIt hỗ trợ nhưng trên thực tế,  bạn chỉ cần quan tâm đến hai kiểu chính đó là number và string. Đây chính là hai kiểu dữ liệu thường dùng nhất khi viết script. Các kiểu khác dùng để tham khảo cho biết chứ thực chất chúng cũng được tạo nên từ hai kiểu trên và thường chúng ít khi được dùng đến. Nếu bạn đã là một người sành sỏi về lập trình thì việc này không cần phải bàn.

Thursday, January 9, 2014

Bài 11: Thiết kế giao diện

    Nếu như các script viết bằng AutoIt có thể hoạt động một cách hoàn toàn âm thầm, nghĩa là click và chạy mà người dùng ko biết j` (mở ngoặc: giống "virus" YM nhờ ), thì đôi khi bạn lại muốn tạo một GUI cho script cho giống một soft hoàn chỉnh

Khả năng tạo GUI trong AutoIt góp phần làm cho nó trở nên phổ biến và tiện dụng hơn


Trong GUI, bạn có thể tạo label, button, checkbox, radiobox, list, progress bar, context menu... nói chung là tất tần tật những j` mà một GUI có thể có.

Để tạo một ứng dụng có GUI, bạn có thể tạo bằng cách tự viết code lấy - Cái này chả khác j` với việc làm đồ họa bằng Pascal. Phải căn ke từng mili trên màn hình, sửa đổi vị trí cho hợp nhãn,... túm lại là rất phiền


Thử ví dụ một GUI cho dễ hình dung nhé:

Code:
; GUI
GuiCreate("Sample GUI", 400, 400)
GuiSetIcon(@SystemDir & "\mspaint.exe", 0)


; MENU
GuiCtrlCreateMenu("Menu&One")
GuiCtrlCreateMenu("Menu&Two")
GuiCtrlCreateMenu("MenuTh&ree")
GuiCtrlCreateMenu("Menu&Four")

; CONTEXT MENU
$contextMenu = GuiCtrlCreateContextMenu()
GuiCtrlCreateMenuItem("Context Menu", $contextMenu)
GuiCtrlCreateMenuItem("", $contextMenu) ;separator
GuiCtrlCreateMenuItem("&Properties", $contextMenu)

; PIC
GuiCtrlCreatePic("logo4.gif",0,0, 169,68)
GuiCtrlCreateLabel("Sample pic", 75, 1, 53, 15)
GuiCtrlSetColor(-1,0xffffff)


; AVI
GuiCtrlCreateAvi("sampleAVI.avi",0, 180, 10, 32, 32, $ACS_AUTOPLAY)
GuiCtrlCreateLabel("Sample avi", 170, 50)

; GUI MESSAGE LOOP
GuiSetState()

Một cách khác, thuận tiện hơn, đó là sử dụng một soft dạng GUI Builder. Có nhiều GUI Builder dành cho AutoIt, nhưng theo quan điểm cá nhân, có lẽ Koda là khá nhất. Công cụ này có thể tại về từ trang web:
http://www.autoitscript.com/fileman/...ormdesign.html

Phiên bản mới nhất là 1.6, cập nhật ngày 19/9.

Koda cho phép bạn dễ dàng tạo GUI chỉ bằng cách drag-and-drop vào form, sau đó sẽ tự động sinh code AutoIt để bạn đưa vào script của mình. Rất rất tiện lợi nếu so sánh với việc code từ đầu bằng tay.

Gắn GUI với code


Có GUI rồi, là đến lúc bạn muốn gắn nó với các mã AutoIt thực thi các lệnh đã viết từ trước.

AutoIt hỗ trợ 2 chế độ tương tác với GUI: OnEvent và MessageLoop. Có thể đảo qua lại 2 chế độ bằng cách dùng lệnh:
Code:
Opt("GUIOnEventMode", 1)

Ở chế độ OnEvent, ta sẽ gắn từng "sự kiện" với một hàm tương ứng. Ví dụ, ta gắn "sự kiện" người dùng click nút Close với hàm Close():
Code:
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSE")
Func CLOSE()
  MsgBox(0, "GUI Event", "You clicked CLOSE! Exiting...")
  Exit
EndFunc

Ở chế độ MessageLoop, ta có một cách tiếp cận hoàn toàn khác. AutoIt sẽ tạo một vòng lặp vô hạn, liên tục kiểm tra xem có sự kiện nào xảy ra với GUI ko - thông qua một hàm mang tên GUIGetMsg.

Toàn bộ việc gắn code với GUI được thực hiện qua một vòng lặp While:
Code:
While 1
  $msg = GUIGetMsg()

  Select
    Case $msg = $GUI_EVENT_CLOSE
      MsgBox(0, "GUI Event", "You clicked CLOSE! Exiting...")
      ExitLoop
  EndSelect
WEnd



Identical(UDS

Bài 10: GIỚI THIỆU VỀ GUI

    GUI là từ viết tắt của Graphic User Interface – giao diện người dùng bằng đồ họa. Điều này có lẽ không cần phải nóii nhiều vì bạn đã thấy nó ngay từ khi tiếp xúc với máy tính, chúng là các biểu tượng, cửa sổ, nút bấm, ...  . Cách đây vài chục năm, cái thời mà DOS còn ngự trị trên máy PC thì có lẽ bạn sẽ gặp rắc rối khi phải nhớ và thao tác một cách chậm chạp với các câu lệnh dài dòng, lắm cú pháp. Còn đến cái thời mà Windows bành trướng sức mạnh của mình bằng giao diện đồ họa và các tính năng mới mẻ, thì việc bạn cần làm khi sử dụng máy tính là nhớ các thao tác. Tất cả các lệnh và hướng dẫn đều có trên màn hình, bạn chỉ cần chọn và nhấn chuột hoặc phím. Thật là tuyệt cho người sử dụng.
Còn đối với người lập trình thì sao ? Khi mới bắt đầu tiếp xúc với việc lập trình ứng dụng trong windows , sẽ không ít người trong chúng ta ngán ngẫm . Tại sao? Đơn giản là vì nó có quá nhiều hàm và cách tổ chức cấu trúc thì chẳng dễ nhớ tí nào. Nếu bạn đã từng học qua C/C++ thì bạn sẽ hiểu cái cảm giác đó. Thế AutoIt sẽ giúp cho công việc của ta dễ dàng hơn à ? Xin thưa là đúng như vậy. Mặc dù bên trong Windows đã được xây dựng sẵn một thư viện đồ sộ cho việc lập trình các ứng dụng có giao diện , nhưng cú pháp của nó quả là rắc rối . Và chúng ta – những người sử dụng AutoIt có thể khai thác thư viện này theo một cách đơn giản nhất mà AutoIt đã hỗ trợ. Sự hỗ trợ mà AutoIt mang đến cho tôi và bạn chính là các hàm để tạo nên cửa sổ , các thành phần con trên nó (ta gọi là các control ) và những thứ liên quan đã được thay thế với cú pháp ngắn gọn, đơn giản và sáng sủa hơn.
Đến đây bạn có thể yên tâm rằng , học AutoIt sẽ không hề vô dụng. Tuy nhiên mọi thứ sẽ không phải là màu hồng như bạn nghĩ vì bạn sẽ tốn khá nhiều thời gian để tìm hiểu về những gì AutoIt đang có. Trước khi soạn tài liệu này , tôi đã phải tốn đến mấy tháng tìm hiểu một cách "lười biếng" về ngôn ngữ này. Hy vọng rằng các bạn sẽ không phải tốn quá nhiều thời gian như tôi. Nói vòng vo như thế cũng đủ rồi , bây giờ là nói vào nội dung chính.

Các control mà AutoIt hỗ trợ cho ta bao gồm :

·  Label
Một mẫu văn bản đơn giản
·  Button
Nút bấm
·  Input
Vùng soạn thảo văn bản chỉ có một dòng
·  Edit
Vùng soạn thảo văn bản có nhiều dòng
·  Checkbox
Một ô vuông cho phép bạn đánh dấu hoặc không đánh dấu
·  Radio
Một nút tròn cho phép bạn chỉ được chọn một nút trong số nhiều nút
·  Combo
Một danh sách có nút bấm để sổ xuống
·  List
Một danh sách
·  Date
Một hộp chọn ngày
·  Pic
Vùng để hiển thị ảnh
·  Icon
Vùng để hiển thị Icon
·  Progress
Thanh tiến trình
·  Tab
Một nhóm các control sẽ được chứa trong tab
·  UpDown
Một control cho phép đính kèm cạnh bên control input
·  Avi
Hiển thị đoạn clip AVI
·  Menu
Menu chức năng trên cửa sổ
·  ContextMenu
Một menu ngữ cảnh sẽ xuất hiện khi bạn nhấn chuột phải (hoặc trái, tùy vị trí)
·  TreeView
Một cây phân nhánh như trong Windows Explorer
·  Slider
Một thanh trượt như thanh điều khiển âm lượng
·  ListView
Control hiển thị thông tin của cột trong listview
·  ListViewItem
Control hiển thị các mục trong listview
·  Graphic
Control để hiển thị đồ họa được vẽ với hàm GUICtrlSetGraphic.
·  Dummy
Control dummny (bù nhìn)

Đây là hình ảnh về các control mà ta có thể tạo lập được


Trước khi tìm hiểu về cách thức tạo một GUI , ở đây xin giới thiệu sơ lược với các bạn các hàm cơ bản mà ta sẽ thường sử dụng để thao tác với một ứng dụng có cửa sổ.
Hàm
 Giải thích
 Tạo một cửa sổ
 Tạo ra các control khác nhau trên cửa sổ (dấu …. sẽ được thay bằng tên cụ thể)
 Hiển thị hoặc ẩn cửa sổ
 Lấy các thông tin về các sự kiện diễn ra trên gui
 Đọc dữ liệu từ control
 Gán/Thay đổi dữ liệu trên control
 Thay đổi các lựa chọn trên control (ví dụ như màu sắc , style,…)


Followers

Popular Posts