Thứ Sáu, 31 tháng 7, 2015

[Infographic] Nên học ngôn ngữ lập trình nào trước tiên?

Nên học ngôn ngữ lập trình nào trước tiên?

Đây là một câu hỏi tôi nhận được khá nhiều qua email, trang hỏi đáp ask.fm và trên page Juno_okyo's Blog. Thường thì với người mới bắt đầu, tôi thường đưa ra 3 lựa chọn là Python, JavaScript hoặc AutoIt. Đơn giản vì tôi đã học qua cả 3 ngôn ngữ đó nên tôi thấy nó thích hợp cho các bạn mới làm quen với lập trình.
Read More

Thứ Tư, 29 tháng 7, 2015

Blogspot đã không còn quá xa lạ, không chỉ nằm ở tầm chia sẻ những suy nghĩ cảm xúc của cá nhân mà giờ đây người sử dụng Blogspot còn chia sẻ nhiều hơn nữa về các lĩnh vực giải trí, thông tin, kiến thức...
BlogTube Responsive Blogger Template là một mẫu thiết kế chuyên nghiệp và đầy đủ chức năng dùng cho một Website chia sẻ Films, videos trên Youtube hoặc những kênh truyền hình khác.
BlogTube Responsive Blogger Template được thiết kế bởi Ar-themes với cách bố trí theo kiểu tạp chí có thể sử dụng cho các trang tin tức. Nhưng ở dưới demo dưới đây, mình đã sử dụng nó cho việc chia sẻ videos và bạn sẽ cảm thấy hài lòng với template này dù cho bạn dùng nó ở bất kỳ lĩnh vực nào.

BlogTube Responsive Blogger Template videos Pro
chi tiết

Thứ Hai, 27 tháng 7, 2015

Thời gian trôi qua lâu rồi mà itviet360 chưa có một bài viết nào mới. Cũng phải xin lỗi bạn đọc vì thời gian gần đây 2 admin của trang đều khá bận rộn với công việc gia đình, và một phần qua email cũng chưa nhận được yêu cầu về thủ thuật nào mới nên đành trễ bài.
Và bài viết hôm nay là một thủ thuật khá nhỏ về iphone. Nhiều bạn mới sử dụng iPhone cũng khá thích chức năng dự đoán văn bản khá chính xác của iphone, nhưng nếu sử dụng lâu bạn sẽ thấy khi nhắn tin hoặc viết nội dung dạng chữ thì khá nhiều lần cảm thấy phiền khi dự đoán không đúng, đặc biệt là những bạn hay nhắn tin chữ viết tắt. Ngay dưới đây là nội dung phần hướng dẫn
Bài viết liên quan: Chụp ảnh màn hình iPhone
Để tắt tiên dự đoán đàn phím trên IOS 6 7 8 (iPhone các loại) các bạn làm theo những bước đơn giản sau:
Bước 1: Vào cài đặt (Settings) -> Cài đặt chung (General)
Cách tắt tiên dự đoán đàn phím trên IOS 6 7 8 (iPhone các loại)
chi tiết

Chủ Nhật, 26 tháng 7, 2015



GIỚI THIỆU

   Chào các bạn!
   Hôm nay mình xin giới thiệu với các bạn GroupBox, một Container dùng để "chứa" các Control khác. GroupBox có dạng hình chữ nhật, dùng gom nhóm các Control có liên quan lại với nhau.


   Chúng ta sẽ bắt đầu vào việc tạo một GroupBox, một GroupBox có thể được tạo từ thanh công cụ ToolBox -> Container


THUỘC TÍNH CỦA GROUPBOX

   Cũng tương tự như một số Control cơ bản khác, ở đây mình xin giới thiệu thuộc tính Dock hay dùng với GroupBox. Bạn có thể scroll chuột và tự tìm hiểu vì nó cũng rất đơn giản
- Top, Bottom, Left, Right: Nó sẽ đưa Groupbox của bạn lên từng góc cụ thể.
- Center: Mở rộng Groupbox, sao cho lấp đầy hết form.
- None: Mặc định, tắt chức năng Docking



SỰ KIỆN CỦA GROUPBOX

Sự kiện mặc định của groupBox là groupBox_Enter, sự kiện này được chạy khi Control chứa trong groupBox trở thành active control của Form. Ví dụ ta có Form như sau.
   Con trỏ ban đầu ở khung textBox, Khi ta tab nó chuyển sang các Control khác, và khi chuyển đến Button1 thì sự kiện Enter sẽ chạy, và mình đã xuất ra thông báo bằng MessageBox   
   Ngoài sự kiện này ra thì Groupbox còn nhiều sự kiện khác nhưng theo mình là không đáng để bận tâm tới

   Trên là những thứ cơ bản về Groupbox, mọi thắc mắc cứ liên hệ trực tiếp với mình. Như thường lệ là đoạn code đơn giản từ cái proj của mình cho các bạn đoán kết quả
public void ShowSearchForm(MainForm mainfrm)
{
PopupForm search = new PopupForm(mainfrm);

search.label.Text = "TÌM KIẾM HỌC SINH";

search.groupBoxAdd.Visible = false;
search.groupBoxEdit.Visible = false;
search.groupBoxSearch.Visible = true;

search.Show();
}


public void ShowAddForm(MainForm mainfrm)
{
PopupForm add = new PopupForm(mainfrm);

add.label.Text = "THÊM HỌC SINH";

add.groupBoxAdd.Visible = true;
add.groupBoxEdit.Visible = false;
add.groupBoxSearch.Visible = false;

add.Show();
}

public void ShowEditForm(MainForm mainfrm)
{
if(SelectedStudentId != "0")
{
PopupForm edit = new PopupForm(mainfrm);

edit.label.Text = "SỬA HỌC SINH";

edit.groupBoxAdd.Visible = false;
edit.groupBoxEdit.Visible = true;
edit.groupBoxSearch.Visible = false;

edit.Show();
}
else
MessageBox.Show("Chọn sinh viên cần sửa!", "Thông báo");

}

TỔNG  KẾT

Groupbox không phải là một control thú vị trong lập trình C# Winform, nhưng chắc chắn nó là một control rất hữu dụng. Nó có thể giúp tạo một giao diện rõ ràng và dễ sử dụng cho chương trình của bạn
Chào các bạn, chúc các bạn học tốt!


Thứ Bảy, 25 tháng 7, 2015

Khi kẻ lừa đảo trên Facebook tự tố giác chính mình
Khi kẻ lừa đảo trên Facebook tự tố giác chính mình

Hình thức lừa đảo trên Facebook năm 2015


Nếu như năm 2014 bùng phát các liên kết lừa đảo với chủ đề "Vẽ Chibi" nhằm dụ dỗ người dùng thực thi các đoạn mã JavaScript độc hại thì sang 2015, chủ đề 18+ đã lên ngôi đưa hình thức lừa đảo Phishing quay trở lại.


Read More

Thứ Sáu, 24 tháng 7, 2015


Chào các bạn!

Hôm nay tiếp tục series lập trình winform cơ bản với ngôn ngữ C#, mình xin giới thiệu với các bạn một control mới rất hay sử dụng trong các Form đăng ký thông tin. Chính là ComboBox. 


GIỚI THIỆU

Một ComboBox hiển thị như một Textbox kết hợp với một Listbox, cho phép người dùng lựa chọn các mục từ danh sách hoặc nhập một giá trị mới.




THUỘC TÍNH CỦA COMBOBOX

   ComboBox cũng có các thuộc tính giống như các Control cơ bản khác. Nhưng có thêm các thuộc tính mới dạng DropDown như DropDownStyle, DropDownWidth, MaxDropDownItems...
Thuộc tính cơ bản của Control

- DropDownStyle: Thuộc tính DropDownStyle xác định các mà danh sách được hiển thị. Thuộc tính DropDownStyle cũng xác định xem phần văn bản có thể được chỉnh sửa hay không.
Với:
- Simple: hiện ngay list item có sẵn.
- DropDownList: là danh sách hiện ra cố định, không thể tự nhập/chỉnh sửa item trong ComboBox.
DropDown: có thể thêm item mới bằng tay và chỉnh sửa Item đã chọn.

Các bạn hãy thử chỉnh sửa các thứ này ngay trong code của mình:
Vd: 
comboBox1.DropDownStyle = ComboBoxStyle.DropDown;

  
 - MaxDropDownItems: Xác định số lượng Item tối đa khi mở danh sách sẽ hiện ra cho các bạn


PHƯƠNG THỨC CỦA COMBOBOX

   Phương thức thường thấy nhất là các phương thức thêm/xóa/sửa dữ liệu trong ComboBox. Để thêm vào ta dùng phương thức Add, để xóa tất cả Item đã thêm ta dùng phương thức Clear, để xóa item cụ thể ta dùng phương thức Remove,...
//Thêm dữ liệu
comboBox1.Items.Add("IceTea Việt");
comboBox1.Items.Add("Lập trình cuộc sống");
comboBox1.Items.Add("Xe đạp");

//Xóa dữ liệu cụ thể bằng chính Text của dữ liệu đó
comboBox1.Items.Remove("Xe đạp");
//Ta cũng có thể xóa theo chỉ số của item đó trong List dữ liệu
comboBox1.Items.RemoveAt(2); //Xóa item thứ 3 trong dữ liệu, vì 2 là index
 
   LẤY DỮ LIỆU TỪ COMBOBOX: 
   Có thể lấy dữ liệu băng nhiều cách, tham khảo đoạn code sau
//Lấy trực tiếp từ thuộc tính Text của ComboBox
//Nhưng nếu ComboBox chưa được chọn thì sẽ không có giá trị
string var;
var = comboBox1.Text;

//Lấy giá trị qua thuộc tính SelectedItem
var item = this.comboBox1.GetItemText(this.comboBox1.SelectedItem);
//Hoặc lấy theo Text mình muốn
var item = this.comboBox1.GetItemText(this.comboBox1.FindStringExact("Xe đạp"));

SỰ KIỆN CỦA COMBOBOX
   Sự kiện của ComboBox không nhiều, sự kiện mặc định của nó là comboBox_SelectedIndexChanged, xảy ra khi chúng ta chọn một Item mới trong ComboBox.

   Bài viết về ComboBox mình đến đây là dài đối với các bạn rồi, mình còn một sô vấn đề muốn nói về ComboBox nữa, thôi thì để bài sau vậy.
Như thường lệ là một đoạn code để các bạn đoán kết quá. Đoạn này có vẻ dễ nhỉ :D
private void Form1_Load(object sender, EventArgs e)
{
comboBox1.Items.Add("weekdays");
comboBox1.Items.Add("year");
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
comboBox2.Items.Clear();
if (comboBox1.SelectedItem == "weekdays")
{
comboBox2.Items.Add("Sunday");
comboBox2.Items.Add("Monday");
comboBox2.Items.Add("Tuesday");
}
else if (comboBox1.SelectedItem == "year")
{
comboBox2.Items.Add("2012");
comboBox2.Items.Add("2013");
comboBox2.Items.Add("2014");
}
}
   
TỔNG KẾT
   
Bằng cách kết hợp Textbox và một danh sách drop-down thông thường, Combobox đại diện cho một control thực sự hữu ích, một hybrid widget trong C# Winform. Nó cũng tạo ra ý tưởng về các hộp thoại dialogs, nơi mà sẽ có các gợi ý cho người dùng từ danh sách drop-down và lại chấp nhận được tất cả giá trị input bất kì

   Bài sau về ComboBox mình sẽ gửi đến các bạn cách gán một DataSource với ComboBox, AutoComplete với ComboBox, ở một cách nhìn đơn giản nhất :D Có lẽ mình sẽ viết bài đó sau khi hướng dẫn cho các bạn một chút về DataSet, DataTable

   Chào các bạn, chúc các bạn học tốt!


Thứ Tư, 22 tháng 7, 2015

Imgur UDF - Tải ảnh lên Imgur.com với AutoIt
Tải ảnh lên Imgur.com với AutoIt

Giới thiệu về Imgur UDF


Đây là một UDF cho AutoIt do tôi viết, giúp bạn có thể tải ảnh lên Imgur.com thông qua API do chính Imgur cung cấp.


Read More

Chủ Nhật, 19 tháng 7, 2015

    
     Chào các bạn!
     Là 1 developer, nếu không học lập trình từ sách thì bạn đã bỏ lỡ 1/2 sự nghiệp của mình. Nhiều bạn cho rằng developer thì cần quái gì đọc sách, code nhiều là giỏi thôi. Vâng nó khá đúng vì các cụ xưa nay có câu "practice make perfect"! Tuy nhiên làm nhiều cũng phải có phương pháp, đúng cách mới tốt được. Nếu cứ cắm đầu cắm cổ code theo 1 kiểu mãi thì sẽ không bao giờ khá lên được đâu!
     Về sách mình đọc cũng kha khá, từ sách tiểu thuyết đến sách lập trình. Theo cuốn Code Complete thì trung bình mỗi developer đọc ít hơn 1 cuốn sách mỗi năm. Vậy nếu bạn đọc 1 quyển/năm thì bạn đã giỏi hơn 90% dev rồi đó =)). Nhân dịp Win10 vừa ra bản RTM, Icetea Việt chọn lọc 10 programming books bằng tiếng Anh về design, C, C#, C++, HTML, Cloud Computing, Java, JavaScript,.. dựa theo danh sách mình sưu tầm được từ blog Coding Honor và nhiều nguồn khác!


TẠI SAO PHẢI ĐỌC SÁCH

     Khi lần đầu tiên chọn lọc danh sách này, bạn biết mình nghĩ gì không ạ? Lúc đó mình nghĩ rằng đúng là chết tiệt thật, giá như mình biết được danh sách này sớm hơn. Bởi trước đó vì không ai bày cho nên đọc sách gì, nên mình đã cắm cổ đọc sách về một công nghệ nhất định nào đó như là ASP.NET, JAVA, PHP,... như điên. Mình thức cả đêm để download hàng trăm cuốn sách, hàng chục GB tài liệu rồi cuối cùng bỏ đó. Và cách đọc sách của mình cũng sai nữa, vớ được cuốn nào là mình đọc hùng hục từ đầu đến cuối, có khi hứng lên còn đọc luôn cả phần lời cảm ơn nữa! :)
     Sau này mình mới biết có những cuốn kinh điển như “Code Complete 2″ là sách gối đầu giường của các lập trình viên Âu Mỹ cho đến Ấn Độ, Họ hay đọc các quyển sách về tư duy, giải thuật, phong cách lập trình. Mình nghĩ cuốn này nên dịch ra để làm giáo trình cho sinh viên đại học CNTT ở Việt Nam thì tốt biết mấy.
Bạn đã có cuốn sách để đầu giường cho riêng mình?

1. Code Complete 2 – Steve McConnell


     Cuốn sách Code Complete 2 của tác giả Steve McConnell đối với các nhà phát triển phần mềm thì cũng nổi tiếng như cuốn Joy of Cooking dành cho các chuyên gia đầu bếp vậy. Đọc nó nghĩa là bạn yêu thích công việc của mình, bạn có thái độ nghiêm túc về cái bạn làm, và bạn muốn làm cho nó trở nên tốt hơn. Trong Code Complete, tác giả Steve ghi chú rằng lập trình viên trung bình đọc ít hơn một cuốn sách kỹ thuật mỗi năm. Và với việc đọc cuốn sách này thì đã giúp kéo bạn ra xa khỏi 90% các đồng nghiệp của còn lại. Dĩ nhiên là theo hướng tốt hơn.
     Nếu bạn muốn trở thành một dev chuyên nghiệp thì nên đọc quyển này, vì nó dạy cho bạn tư duy xử lý vấn đề. Từ cách thiết kế class, đến cách đặt tên biến, method,...     

2Advanced Linux Programming – CodeSourcery LLC , Mark L. Mitchell, Alex Samuel, Jeffrey Oldham


     “Advanced Linux Programming có đầy đủ thông tin từ thread management, interprocess communication, shared memory, devices, cho đến implementing inline assembly code… Đây là một quyển sách PHẢI ĐỌC dành cho người muốn biết về Linux
     “Quyển sách này đúng là đáng kinh ngạc. Mọi thông tin và ví dụ thực tế đều được chứa đựng trong hơn 300 trang sách. Tôi được hướng dẫn từng bước căn bản từ tạo basic applications, shared & static libraries, sockets, pipes & security, forks/threads đến nhiều ví dụ cụ thể về synchronization mechanisms.”

3. The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition)


     Có nhiều ý kiến cho rằng đây là cuốn sách “kinh điển” duy nhất trong lĩnh vực phát triển phần mềm của chúng ta. Nó như là "Kinh Thánh" trong giới dev và PM. Nếu bạn vẫn chưa đọc nó, thì thật đáng hổ thẹn.
Tôi thách thức bất kỳ lập trình viên nào đọc cuốn The Mythical Man Month mà lại không tìm thấy câu chuyện về một hệ điều hành không tồn tại nữa, và nhóm người đã phát triển ra nó, rất đáng ngạc nhiên là chúng lại rất liên quan đến vấn đề của bạn ngày nay. Cuốn sách 30 năm tuổi đã minh họa sâu sắc một quan điểm rằng: máy tính có thể thay đổi, nhưng con người thì không. Bằng chứng là những gì quyển sách đã nói cách đây 30 năm đến giờ vẫn còn chính xác!
     Đọc cuốn sách kinh điển này chắc chắn sẽ tốt hơn rất nhiều việc bạn sử dụng thời gian để nghiền ngẫm trên hàng ngàn trang tài liệu kỹ thuật mới nhất hiện nay. Tuy không giúp bạn code giỏi hơn, nhưng giúp bạn có cái nhìn tổng quan về ngành Công nghệ phần mềm!

4. C# Yellow Book – Rob Miles

     “Nếu bạn chưa bao giờ lập trình thì đây là cuốn sách dành cho bạn – beginner – với nhiều hướng dẫn cực kỳ dễ theo dõi… Phần lớn topic về C# đều được tác giả đề cập đến trong C# Yellow Book nhưng những vấn đề “khó nhằn” nhất thì lại bị bỏ qua.”
     “Quyển sách này không chỉ dạy bạn những điều căn bản về C# programming mà còn nhiều lý thuyết lập trình khác. Nếu bạn muốn học lập trình thì đây là 1 khởi đầu đúng đắn dành cho bạn.

5. Clean Code: A Handbook of Agile Software Craftsmanship – Robert C. Martin


     Tất cả ví dụ trong sách là của Java, nhưng phần hướng dẫn có thể được áp dụng trong hầu hết các trường hợp, ngôn ngữ khác nhau.”
“Chương khó nhất và cũng giá trị nhất là ‘Refactoring of the class SerialDate’ (từ thư viện JCommon.) Nó là một ví dụ thực tế và tác giả đã mô tả từng bước refactoring để người đọc dễ nắm bắt hơn. Chương cuối cùng, ‘Smells và Heuristics’ là 1 kết thúc tốt trình nêu nhiều vấn đề tiềm năng và đề xuất cách giải quyết /giảm thiểu chúng.”

6. Don’t Make Me Think: A Common Sense Approach to Web Usability

     Một cuốn sách rất hay về thiết kế giao diện. Sách viết về usability (tính dễ sử dụng của phần mềm). Tác giả Steve Krug đã bao quát mọi khái niệm quan trọng về usability trong cuốn sách này, và ông làm công việc đó rất tốt. Sách không dạy các bạn thiết kế giao diện sao cho đẹp, nhưng nó dạy chúng ta cách thiết kế đơn giản, dễ sử dụng, không gây khó khăn cho người dùng. Đọc cuốn sách này thì rất vui. Nếu bạn chọn đọc chỉ một cuốn sách về usability, thì hãy lựa chọn cuốn này. Nó chứa rất nhiều thông tin tuyệt vời, và hình thức trình bày thì ngắn gọn súc tích, dễ áp dụng theo. Nó phù hợp với bất kỳ độc giả nào: dân kỹ thuật, không phải dân kỹ thuật, người dùng bình thường, lập trình viên, nhà quản lý v.v…
     Nó đưa ra một qui tắc rất đơn giản khi thiết kế giao diện: người dùng rất lười, hãy thiết kế sao cho người dùng ít phải suy nghĩ nhất. Và về sự đắt giá của giao diện người dùng, chỉ cần thay đổi 1 button có thể tăng doanh thu lên đến 500 000$ trong 1 năm!

7. Core HTML5 Canvas: Graphics, Animation, and Game Development (Core Series) –David Geary


Flash hiện đang chết - và bây giờ là thời đại của HTML5??? 
     Như chúng ta đều biết thì dạo này Flash rất hay bị tấn công, lỗi và bị chặn trên đa số trình duyệt, các ông lớn là Facebook và Google cũng đang dần chuyển sang HTML5, vậy dại gì mà chúng ta không thử tìm hiểu 1 chút về các lợi ích của chúng?
     “Cuốn sách này cực kỳ chi tiết và hướng dẫn của tác giả cũng đúng vào những điều trọng tâm nhất.” Chương 1 bao gồm các yếu tố cần thiết của canvas element như event handling, sử dụng HTML element trong canvas element, in canvas. Chương 2 giới thiệu cách vẽ canvas. David bắt đầu với những điều cơ bản như vẽ hình học căn bản và từng bước nâng kỹ thuật lên bằng cách sử dụng bezier curves, path manipulation, và transformations.”
     “David hướng dẫn người đọc qua nhiều ví dụ bằng hình ảnh, video, animation, sprites, game physics và mobile development. Code trong ví dụ của ông rõ ràng và được trình bày theo thứ tự với nhiều màu sắc khác nhau… Mặc dù Core HTML 5 Canvas tập trung vào game development nhưng mọi thông tin trong sách đều có ích cho mọi application developer.”

8. C++ GUI Programming With Qt 3 – Jasmin Blanchette và Mark Summerfield


     “6 chương đầu tiên cung cấp một nền tảng rất vững chắc về Qt. Các chương nổi bật gồm: chương 1 cung cấp kiến thức nền tảng vững chắc về Qt, chương 3 nói về modeless application development với nhiều ví dụ dễ hiểu, và chương 6 nói về layout management.”
    “Qt là 1 application framework đòi hỏi bạn phải đối mặt với vấn đề về files, sockets, và network programming. Quyển sách này giúp bạn giải quyết tất cả những vấn đề đó.”

9. JavaScript: The Good Parts – Douglas Crockford

     “Đây là quyển sách dành cho người có nhiều năm kinh nghiệm lập trình, muốn tìm hiểu cách tốt nhất để tạo và sử dụng objects, arrays, types, v.v… Kinh nghiệm của Crockford về JavaScript hướng dẫn tôi nhiều kỹ thuật, style coding thực tế.”
     “Quyển sách mỏng nhưng cực kỳ đầy đủ thông tin với nhiều lời khuyên hữu ích đến từ vô số developer có kinh nghiệm lập trình JavaScript trong nhiều năm. Tôi đồng ý và không đồng ý với Crockford ở một vài quan điểm, nhưng những quan điểm của ông đáng để đọc và suy ngẫm rồi rút ra ý kiến của riêng mình.“

10. The Design of Everyday Things - Donald A Norman

     Công việc phát triển phần mềm có thể làm bạn nản lòng đến mức khó tin, bởi vì có quá nhiều thứ có thể trở nên sai sót. Có rất nhiều thứ chúng ta làm là để phòng thủ: cố gắng đoán trước điều gì sẽ trở nên sai trước khi nó xảy ra. Nó là nguyên nhân làm bạn kiệt sức về tinh thần, và thậm chí có thể biểu lộ bản thân theo một số cách khá tiêu cực. Đôi khi tôi mô tả công việc này với những người không chuyên về kỹ thuật như thể tôi đang tạo ra một cái đồng hồ với hàng ngàn chi tiết nhỏ, tất cả chúng có thể hỏng một cách ngẫu nhiên vì những kích thích nhỏ nhất.



Sau khi xem qua danh sách này thì chúng ta hãy cùng đọc lại một đoạn trong bài viết của một lập trình viên khá nổi tiếng tại Ấn Độ nhé:
“Cũng giống như ngoài đại dương bao la kia, phía trên bề mặt thì sóng rất dữ dội nhưng ở mực nước sâu thì mọi thứ tương đối yên tĩnh, phẳng lặng và hầu hết các sinh vật sống và phát triển tại đây. Vì thế, hãy tự cảm nhận rằng mình đang ở mực nước sâu và tiến gần với những công nghệ cốt lõi. Bạn hãy dành nhiều thời gian để học về những khái niệm cốt lõi hơn là cứ ngồi đó mà lo lắng về những framework và công cụ luôn thay đổi xoành xoạch xung quanh nó. Cùng với nền tảng vững chắc của những kiến thức cốt lõi, bạn sẽ luôn dễ dàng học được những framework, công cụ và các API mới.”
Chào các bạn và chúc các bạn học tốt! 


Thứ Năm, 16 tháng 7, 2015


   Chào các bạn! 
   Sau mấy ngày lười biếng thì hôm nay mình đã trở lại và ăn hại hơn xưa :D, phần vì ở là nghỉ hè nên lười, chỉ muốn chơi game và xem phim, phần vì mình vừa code xong game cờ Caro với con stupid A.I. Ai muốn chơi thử thì liên hệ mình nhé :D


GIỚI THIỆU

Hôm nay mình sẽ giới thiệu với các bạn 2 control đơn giản và cần thiết là RadioButtonCheckbox. Chúng ta hãy cùng xem có thể làm đc gì với nó nhé 



RADIO BUTTON

     RadioButton cho phép người dùng chỉ được chọn một lựa chọn duy nhất trong các lựa chọn cùng 1 "nhóm". Có nghĩa là nếu 1 nhóm các RadioButton thì nếu bạn check một nút, thì tất cả các nút còn lại đều ở trạng thái unchecked. Giống như bảng chọn giới tính thì chỉ được chọn Nam hoặc Nữ, chứ làm sao mà có kiểu lai hóa giữa 2 cái như vậy đc =))

     Một RadioButton có thể hiển thị nội dung text, hình ảnh hoặc cả 2. Các thuộc tính của RadionButton cũng tương tự như các control khác. Nhưng nó có thêm một thuộc tính Checked để lưu trạng thái đã chọn hay chưa chọn của nút
     Để thay đổi trạng thái cho RadioButton ta dùng cú pháp sau:
tênRadioButton.Checked = true;
 Ta tiếp tục với ví dụ sau: Ta có một form như hình: 
Ta sẽ viết code cho mặc định là nút đầu tiên sẽ được check, và nếu mục nào đang được check, khi bấm vào button1 thì nó sẽ hiện nội dung của mục đó.
//Ta dùng sự kiện FormLoad để mặc định cho nút đầu tiên được chọn
private void Form1_Load(object sender, EventArgs e)
{
radioButton1.Checked = true;
}

//Sau đó xử lý sự kiện click cho Button1
private void button1_Click(object sender, EventArgs e)
{
if (radioButton1.Checked == true)
{
MessageBox.Show("Bạn vừa chọn RadioButton 1 với nội dung là: " + radioButton1.Text);
return;
}
else if (radioButton2.Checked == true)
{
MessageBox.Show("Bạn vừa chọn RadioButton 2 với nội dung là: " + radioButton2.Text);
return;
}
else if (radioButton3.Checked == true)
{
MessageBox.Show("Bạn vừa chọn RadioButton 3 với nội dung là: " + radioButton3.Text);
return;
}
else if (radioButton4.Checked == true)
{
MessageBox.Show("Bạn vừa chọn RadioButton 4 với nội dung là: " + radioButton4.Text);
return;
}
}
Và kết quả sẽ là:

CHECKBOX

     Không như RadioButtons chỉ có thể chọn một mục cho cả nhóm và khi đã chọn rồi thì không thể deselect (hủy chọn) được, thì Checkbox ta có thể chọn nhiều mục khác nhau cùng lúc và có thể chọn và hủy tùy ý. Checkbox thường được sử dụng để tạo các sự lựa chọn cho người dùng. Một ví dụ kinh điển là khi đăng kí tài khoản hay cài đặt phần mềm ta hay chọn vào "Tôi đồng ý với điều khoản trên..." :D
     Các thuộc tính cơ bản của Checkbox cũng giống tương tự như các Control cơ bản khác, tuy nhiên có thêm thuộc tính Checked, CheckState ThreeState
Các thuộc tính cơ bản của CheckBox
     THREE STATE CỦA CHECKBOX: Ta nói thêm về ThreeState. Khi đã bật lựa chọn này thì người dùng có thể tự do lựa chọn 3 lựa chọn trên một CheckBox là Checked, UnChecked và Indeterminate. Nếu ThreeState không được bật thì ta chỉ có thể cho Checkbox vào trạng thái Indeterminate bằng code, không trưc tiếp trên Form được. Tham khảo thêm trên MSDN

     Về sự kiện, ta có sự kiện hay dùng nhất của CheckBox đó là CheckedChangedCheckStateChanged. Ví dụ với đoạn code sau:
//Sự kiện CheckedChanged chỉ theo dõi được hai trạng thái???
private void checkBox4_CheckedChanged(object sender, EventArgs e)
{
checkBox4.ThreeState = true;
if(checkBox4.CheckState == CheckState.Checked)
{
MessageBox.Show(checkBox4.Text + " đang được chọn");
}
else if(checkBox4.CheckState == CheckState.Unchecked)
{
MessageBox.Show(checkBox4.Text + " không được chọn");
}
else if(checkBox4.CheckState == CheckState.Indeterminate)
{
MessageBox.Show(checkBox4.Text + " đang ở trạng thái Indeterminate");
}
}

//Sự kiện CheckStateChanged theo dõi được cả ba trạng thái, bao gồm cả Indeterminate???
private void checkBox5_CheckStateChanged(object sender, EventArgs e)
{
checkBox5.ThreeState = true;
if (checkBox5.CheckState == CheckState.Checked)
{
MessageBox.Show(checkBox5.Text + " đang được chọn");
}
else if (checkBox5.CheckState == CheckState.Unchecked)
{
MessageBox.Show(checkBox5.Text + " không được chọn");
}
else if (checkBox5.CheckState == CheckState.Indeterminate)
{
MessageBox.Show(checkBox5.Text + " đang ở trạng thái Indeterminate");
}
}
Và kết quả sẽ là khi ta chọn checkbox IceTea Việt thành Indeterminate thì nó sẽ không "lắng nghe" được và không xuât thông báo, còn ở checkbox iceteaviet.blogspot.com thì nó hoàn thành tốt cả ba trạng thái trong sự kiện

     Ngoài các sự kiện trên bạn cũng có thể kết hợp các control đã học để tùy biến cho các sự kiện của Checkbox và RadioButton. 


TỔNG KẾT
   RadioButton và Checkbox trong C# Winforms là những control cho phép người dùng xác định những chọn lựa của mình thông qua những gợi ý, đề xuất từ chương trình. Là những control hữu dụng không thể thiếu trong các chương trình hiện nay

     Bài này đến đây là kết thúc rồi, các bạn cũng đã học gần hết các Control cơ bản rồi đó, sau khi học đầy đủ chúng ta lại làm đồ án thôi :D :D Nhớ làm bài Pet Project #1 của mình tại đây nhé: http://iceteaviet.blogspot.com/2015/07/winform-c-can-banproject-1-phan-mem.html

     Chào các bạn, chúc các bạn học tốt!


Thứ Tư, 15 tháng 7, 2015

Nếu bạn là 1 người hay vọc vạch thiết kế đồ họa, hiệu ứng video, kỹ xảo cho phim thì không thể không biết tới Adobe After Effect.
AE là 1 phần mềm chuyên xử lý video, hiệu ứng trong phim, giúp tạo các kỹ xảo trong phim.

Nếu bạn có hứng thú về lĩnh vực này mà máy tính của mình chưa có AE thì bạn có thể tham khảo bài viết hướng dẫn cài đặt ở link sau
After Effect CS6 64 & 32 bit + crack

Để máy chạy tốt các tính năng của AE máy bạn phải cài thêm QuickTime. Cái này rất quan trọng, vì trong khoảng thời gian đầu mình phải mất mấy ngày để xử lý mấy lỗi linh tinh khi chưa cài Quicktime.
Bạn download QuickTime tại đây.

Sau đây mình sẽ chia sẻ cho các bạn 1 template tạo video từ ảnh + hiệu ứng chuyển động 3D
Video mình đã làm

Download Template tại đây: MEGA

Để chạy tốt template này bạn phải cài thêm 1 plugin làm các hiệu ứng như pháo hoa..., đó là Trapcode Particular
Download Full bộ hiệu ứng Trapcode tại đây.

Hướng dẫn sử dụng Template:
- Bạn down temp về, giải nén, mở lên
- Chỉnh sửa các Footage thành các hình ảnh của bạn
- Xem thử và Render ra video (video khá nặng khoảng 20GB  :v , phải encode lại)

Các trang web chia sẻ AE Template: VietDesigner

Chúc bạn thành công!

Thứ Sáu, 10 tháng 7, 2015

Chào các bạn!

    Sau 4 Control đã học, thì bây giờ có lẽ các bạn đang rất muốn làm một thứ gì đó để làm mốc cho những gì mình học đúng không? 
Như mình đã hứa và cũng là mục tiêu của blog - Tutorial with example. Và bây giờ mình sẽ gửi đến các bạn yêu cầu của đồ án 1 - Phần mềm Calculator
Phần mềm Calculator trên Win 8
Rồi yêu cầu của mình là: Chỉ với 4 control đã học (textBox, Label, MessageBox, Button)
 - Giao diện tương tự như Calculator của Windows, có đầy đủ nút bấm và chức năng tương tự, nếu thêm được chức năng mới thì càng tốt
 - Có khung đăng nhập, nếu chưa đăng nhập thì các nút chức năng bị mờ đi không dùng được
 - Thực hiện phần hiển thị phép tính, hiện thị kết quả, cách nhập xuất tương tự Calculator
 - Có thể thêm chức năng giải phương trình, hoặc các chức năng khác nếu thích

Các bạn có thể xem chi tiết yêu cầu và bản Demo của mình tại video sau:



Các bạn có 2 tuần để làm, sau 2 tuần mình sẽ đăng source code lên và kèm theo bài hướng dẫn nho nhỏ nhé :D

Link source code demo:  http://www.mediafire.com/download/ka2q3330uw3pqz0/DemoCalc.rar


Chúc các bạn học tốt và cố gắng hoàn thành Pet Project đầu tay cho mình nhé 
Những lỗ hổng tồn tại trong hệ thống Internet (P3)
Những lỗ hổng tồn tại trong hệ thống Internet (P3)
> Đọc lại phần 1phần 2 nếu bạn chưa đọc!

Phần 3: Hiểm họa được báo trước - và bị làm ngơ


Tháng 5/1998, một "băng" hacker bao gồm 7 người ngồi trước Quốc hội Mỹ để cảnh báo về sự thiếu an toàn của Internet. Những người này không phải là những chuyên gia phân tích hay các học giả bác học đến từ những viên nghiên cứu nổi tiếng, họ chỉ là những hacker xuất hiện từ hư vô để mang đến một thông điệp vô cùng đáng sợ.



Read More
Những lỗ hổng tồn tại trong hệ thống Internet (P2)
Những lỗ hổng tồn tại trong hệ thống Internet (P2)
> Đọc lại phần 1 tại đây!

Phần 2: Một giải pháp được viết vội trên 3 tờ khăn ăn vẫn đang là trụ cột của Internet đến ngày nay


Ba tờ khăn ăn


Một thời gian sau khi Internet bắt đầu được triển khai rộng rãi, mạng này bắt đầu phát triển như vũ bảo. Và khi Internet càng phát triển thì người ta càng tiến gần hơn đến giới hạn toán học của một trong những giao thức cơ bản nhất giúp hệ thống mạng này vận hành. Chính vì thế, trong một bữa trưa vào năm 1989, có hai kĩ sư mạng bắt đầu phác thảo ý tưởng của mình trên một tờ khăn ăn gần đó. Rồi hai tờ. Rồi ba tờ. Ít ai có thể ngờ rằng thứ giao thức được viết trên 3 tờ giấy này sẽ sớm làm một cuộc cách mạng với Internet, và nó vẫn còn đang được sử dụng cho đến tận ngày hôm nay.


Read More
Những lỗ hổng tồn tại trong hệ thống Internet (P1)
Những lỗ hổng tồn tại trong hệ thống Internet (P1)

Phần 1: Internet không được xây dựng để bảo mật trước người dùng của chính mình - những vấn đề không thể được khắc phục


Sự nguy hiểm đến từ bên trong


David D. Clark, một nhà khoa học làm việc cho Đại học MIT, nhớ chính xác lần đầu tiên mà ông nhìn thấy mặt tối của Internet. Lúc đó ông đang ngồi trong một cuộc họp với các kĩ sư mạng vào tháng 11/1988, thế rồi họ vô tình nghe được tin tức về một con sâu máy tính nguy hiểm đang lây nhanh - cũng là phần mềm mã độc đầu tiên lan truyền rộng rãi trên thế giới. Ngay lập tức, một trong những kĩ sư đang ngồi ở đó, đứng dậy và nói: "Chết tiệt, tôi nghĩ tôi đã sửa lỗi này rồi chứ".


Read More
Những lỗ hổng tồn tại trong hệ thống Internet
Những lỗ hổng tồn tại trong hệ thống Internet
Internet là thứ mà chúng ta sử dụng hằng ngày hằng giờ, rất nhiều cơ quan, doanh nghiệp, chính phủ đang vận hành dựa trên mạng lưới này. Nhưng đáng buồn thay, Internet lại không an toàn ngay từ trong cốt lõi của mình. Để tìm hiểu lý do vì sao một hệ thống mạng toàn cầu với hơn 3 tỷ người dùng lại gặp vấn đề lớn như thế, mời các bạn theo bài viết bên dưới. Có tất cả 3 phần: Phần đầu nói việc Internet được tạo ra mà không có đầy đủ các tính năng an toàn.


Read More

Thứ Tư, 8 tháng 7, 2015

Làm game 2D với Unity3D

Nếu bạn ấp ủ ý định làm game 2D và phân vân chưa biết chọn công cụ nào để hỗ trợ mình thì bạn nên thử tìm hiểu Unity3D. Unity3D hỗ trợ tốt cho bạn dù bạn muốn làm một game 3D hay 2D. Cho dù bạn không phải một lập trình viên chuyên nghiệp, không phải một người thiết kế game, không có chi phí đầu tư lớn thì bạn vẫn có thể làm game với Unity3D hoàn toàn miễn phí. Những gì bạn cần có chỉ đơn giản là một ít kiến thức với ngôn ngữ lập trình JavaScript, C# hoặc Boo cùng với đam mê của bạn.


Có gì ở Unity3D?
làm game 2D
  • Một công cụ xây dựng game: cho phép bạn tạo game, kiểm thử và chơi thử trên nhiều môi trường.
  • Một ứng dụng cho phép phần thiết kế hay giao diện người dùng được đặt chung với tùy chọn xem trước phần đồ họa và các chức năng điều khiển trò chơi.
  • Một công cụ lập trình: IDE cung cấp công cụ soạn thảo để lập trình đi kèm ngay khi bạn cài đặt Unity3D.
Các tính năng của Unity3D
  • Rendering: Các công cụ đồ họa của Unity sử dụng OpenGL, Direct3D, OpenGL ES cho nền tảng di động (iOS, Android) và các API khác nhau. Ngoài ra còn có sự hỗ trợ cho phản xạ, sai số và ánh xạ các va chạm. Nó cung cấp các tính năng để tạo văn bản và sử dụng các bản đồ bóng tạo bóng động. Hỗ trợ nhiều định dạng file của các phần mềm khác nhau. Ví dụ, Adobe Photoshop, Blender và 3ds Max.
  • Scripting: Kịch bản game (script) được xây dựng trên Mono, một mã nguồn mở nền tảng .NET framework. Các lập trình viên viết các UnityScript tương tự như JavaScript, C# và Boo.
  • Asset Tracking: Unity có giải pháp kiểm soát từ server cho các game script và game assets. Nó sử dụng PostgreSQL để làm một hệ thống phụ trợ cho âm thanh và các Codec Theora cho phát video. Nó cũng có công cụ đi kèm để xây dựng địa hình và thảm thực vật cho game, đồng thời xây dựng hệ thống chiếu sáng và bản đồ ánh sáng , hệ thống tìm đường.
  • Physics: Unity engine hỗ trợ tốt hệ thống vật lý cho game.
làm game 2D
Vì sao nên chọn Unity3D để bắt đầu?


Hỗ trợ nhiều nền tảng
Hỗ trợ nhiều nền tảng


  • Dễ dàng bắt đầu làm game với rất nhiều hướng dẫn, những bộ mã nguồn và tài nguyên có sẵn, miễn phí trên Assets Store của Unity.
  • Hỗ trợ đa nền tảng: Unity3D hỗ trợ mạnh mẽ cho bạn xây dựng game cho các hệ điều hành PC , các hệ điều hành Mobile và web.
  • Unity cung cấp một IDE đi kèm với giao diện tiện dụng, hỗ trợ lập trình viên xây dựng game một cách nhanh chóng.
  • Hệ thống đồ họa ấn tượng: Hỗ trợ cho các hiệu ứng hình ảnh và âm thanh tiên tiến với sự hỗ trợ lớn các dạng vật liệu. Trực quan dễ dàng thiết kế cho màn hình của các thiết bị di động mà không ảnh hưởng đến mức độ truy cập cho việc tối ưu với các pixel shader.
  • Tài liệu – Sự hỗ trợ của các nhà phát triển có kinh nghiệm và tài liệu hướng dẫn chi tiết cho từng vấn đề là một lợi thế.
  • Triển khai: rất dễ dàng để triển khai các trò chơi trên Unity Engine.
  • Code rất ổn định so với các ngôn ngữ khác và bao gồm một kiến trúc tuyệt vời để có hiệu suất tốt và giảm sai sót trong quá trình lập trình.
  • Profiler: Unity đi kèm với một hồ sơ dễ dàng được sử dụng để tối ưu hóa game và ngăn chặn rò rỉ bộ nhớ.
  • Không thể đảo mã để tìm ra code các game đã được triển khai.
Kết
Unity  một nền tảng tuyệt vời để bắt đầu phát triển trò chơi và chắc chắn là những bạn mới bắt đầu với làm game nên dùng thử. Với rất nhiều bài hướng dẫn cụ thể từng bước một do nhiều lập trình viên đi trước tạo ra, bạn có thể nhanh chóng xây dựng cho mình một game 2D như ý muốn
Bài viết được dịch từ trang web Makeuseof
Việc học lập trình có thể là một điều khó với nhiều người, thậm chí với những ngôn ngữ lập trình tương đối dễ học. Trong khi Java khá dễ để bắt đầu thì C++ không được như vậy.
Tôi nên bắt đầu học lập trình C++ từ đâu?
Tôi nên bắt đầu học lập trình C++ từ đâu?
Tuy nhiên, những người với một số kinh nghiệm lập trình sẽ thấy việc học C++ ít khó khăn hơn là người mới bắt đầu tiếp xúc với lập trình, mặc dù có rất nhiều trang web chất lượng để bạn tự học trên Internet.

Tại sao lại học ngôn ngữ lập trình C++?

Tại sao bạn lại quan tâm đến việc học C++? Nó là một ngôn ngữ lập trình rất mạnh mẽ đi cùng một câu khẩu hiệu là "hãy tin tưởng vào lập trình viên đó". Trong khi quan điểm này cũng làm gia tăng lỗi, nhưng nó cũng cung cấp cho lập trình viên nhiều sự linh hoạt trong cách làm thế nào để học cách thực sự viết code.
Rất nhiều chương trình có ít nhất một phần được viết bằng ngôn ngữ này hoặc người anh em của nó là ngôn ngữ C. Việc học C++ cũng mang lại ích lợi theo một hướng khác - đó là C++ có rất nhiều điểm rất giống ngôn ngữ C, bạn cũng có thể hiểu code viết bằng C rất tốt.

1. LearnCpp.com

Học lập trình C++
LearnCpp là một nơi tuyệt vời dành cho cả những người mới bắt đầu và những lập trình viên đã có một số kinh nghiệm bắt đầu học C++. Tác giả của trang web này có cách viết rất dễ hiểu, thông qua các tutorial chứa các bài học rất cơ bản (như là việc cài đặt một IDE tốt, giống như IDE ưa thích của tôi là Geany for Linux) cho tới một số thứ nâng cao hơn (như một số thay đổi gần đây của ngôn ngữ C++).
Trong tất cả những trang web mà tôi liệt kê ở đây, tôi đề xuất bạn nên thử trang web này trước. Những bài tutorial tuân theo một định hướng rất có logic, cái sau dựa trên kiến thức của cái trước. Thêm nữa, sau mỗi bài học tác giả đưa ra cho bạn một bài kiểm tra để xem liệu bạn hiểu về bài học đó như thế nào, đây là phần mà tôi cảm thấy tuyệt nhất.

2. CPlusPlus.com

Học lập trình C++
CPlusPlus là một trang web tuyệt vời khác dành cho việc học C++. Mặc dù trang web này cũng có một số tutorial, nhưng tốt hơn nên sử dụng nó như là tài liệu tham khảo. Có vô số các khái niệm lập trình mà bạn có thể tìm thấy, nó rất hữu ích khi bạn muốn sử dụng một kỹ thuật nhất định nào đó nhưng lại đang bí.
Trang web này có thể không hoàn toàn tốt nhất cho người mới bắt đầu, nó bao gồm nhiều thuật ngữ hơn trang LearnCpp.com nên phù hợp để làm tài liệu tham khảo. Tuy nhiên, thông tin được bao gồm trong trang web này vẫn rất tốt và nên được sử dụng miễn là bạn hiểu được nó nói gì.

3. Cprogramming.com

Học lập trình C++
Trong trường hợp hai trang web đầu tiên vì một lý do nào đó không hợp với bạn, có thể bạn sẽ có một chút may mắn hơn với trang web Cprogramming.com. Trang web này cũng bao gồm một tutorial được viết rất tốt và những kiến thức hữu ích khác bạn có thể sử dụng. Cá nhân tôi thích trang web LearnCpp.com hơn bởi vì tôi thấy những tutorial trên đó khá dễ hiểu, và dễ điều hướng giữa các bài học vì chúng được tổ chức rất tốt. Tuy nhiên, quan điểm của bạn có thể không giống với quan điểm của tôi, vì vậy nếu bạn thấy trang web này phù hợp hơn cho bạn thì hãy sử dụng nó!
Một điều rất tốt về trang web Cprogramming.com là nó bao gồm cả các tutorial cho cả 2 ngôn ngữ lập trình C++ và C, vì vậy bạn có thể học cả hai ngôn ngữ thông qua các tutorial được viết bởi cùng tác giả. Thật tuyệt vời khi có sự so sánh giữa hai ngôn ngữ đó, thêm nữa nếu bạn tìm học C++ trên trang web này mà thấy dễ hiểu hơn, thì nó cũng dễ hiểu khi bạn học ngôn ngữ C.

Kết luận

Hy vọng rằng, khi được trang bị với 3 trang web này, bạn sẽ có khả năng nắm lấy C/C++ và bắt đầu viết các chương trình của riêng bạn. Chỉ nên nhớ rằng khi bạn đã bắt đầu, các chức năng sẽ luôn được ưu tiên hơn giao diện, vì vậy đừng cảm giác như chương trình của bạn là vô giá trị nếu nó không có một giao diện GUI. Các thuật toán và những phần code khác khiến chương trình làm điều mà nó cần phải làm, và nếu nó hoạt động tốt, thì thật tuyệt vời! Nhiệm vụ của bạn đã hoàn thành!
Hãy cho chúng tôi biết bạn thích trang web nào hơn trong phần bình luận phía dưới nhé!

Categories

Sample Text

Được tạo bởi Blogger.

Must Read

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Popular Posts

Video

Popular Posts

Our Facebook Page